feat: added From convertions for the MerkleStore

This commit is contained in:
Augusto F. Hack
2023-04-21 14:45:50 +02:00
parent eb316f51bc
commit 59595a2e04
3 changed files with 52 additions and 44 deletions

View File

@@ -1,7 +1,7 @@
use super::mmr::Mmr;
use super::{
BTreeMap, EmptySubtreeRoots, InnerNodeInfo, MerkleError, MerklePath, MerklePathSet, NodeIndex,
RootPath, Rpo256, RpoDigest, ValuePath, Vec, Word,
BTreeMap, EmptySubtreeRoots, InnerNodeInfo, MerkleError, MerklePath, MerklePathSet, MerkleTree,
NodeIndex, RootPath, Rpo256, RpoDigest, SimpleSmt, ValuePath, Vec, Word,
};
use crate::utils::{ByteReader, ByteWriter, Deserializable, DeserializationError, Serializable};
@@ -393,6 +393,33 @@ impl MerkleStore {
}
}
// CONVERTIONS
// ================================================================================================
impl From<MerkleTree> for MerkleStore {
fn from(value: MerkleTree) -> Self {
let mut store = MerkleStore::new();
store.extend(value.inner_nodes());
store
}
}
impl From<SimpleSmt> for MerkleStore {
fn from(value: SimpleSmt) -> Self {
let mut store = MerkleStore::new();
store.extend(value.inner_nodes());
store
}
}
impl From<Mmr> for MerkleStore {
fn from(value: Mmr) -> Self {
let mut store = MerkleStore::new();
store.extend(value.inner_nodes());
store
}
}
// ITERATORS
// ================================================================================================