From b2d6866d4159d5051930d1f82bf3c1911f4079d3 Mon Sep 17 00:00:00 2001 From: Bobbin Threadbare Date: Sun, 25 Jun 2023 01:42:21 -0700 Subject: [PATCH] refactor: rename Merkle store Node into StoreNode --- src/merkle/mod.rs | 2 +- src/merkle/store/mod.rs | 58 ++++++++++++++++++++--------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/merkle/mod.rs b/src/merkle/mod.rs index ded7313..3e1c9d9 100644 --- a/src/merkle/mod.rs +++ b/src/merkle/mod.rs @@ -33,7 +33,7 @@ mod mmr; pub use mmr::{Mmr, MmrPeaks, MmrProof}; mod store; -pub use store::{DefaultMerkleStore, MerkleStore, RecordingMerkleStore}; +pub use store::{DefaultMerkleStore, MerkleStore, RecordingMerkleStore, StoreNode}; mod node; pub use node::InnerNodeInfo; diff --git a/src/merkle/store/mod.rs b/src/merkle/store/mod.rs index ab69ecc..fdba5ed 100644 --- a/src/merkle/store/mod.rs +++ b/src/merkle/store/mod.rs @@ -13,13 +13,13 @@ mod tests; // ================================================================================================ /// A default [MerkleStore] which uses a simple [BTreeMap] as the backing storage. -pub type DefaultMerkleStore = MerkleStore>; +pub type DefaultMerkleStore = MerkleStore>; /// A [MerkleStore] with recording capabilities which uses [RecordingMap] as the backing storage. -pub type RecordingMerkleStore = MerkleStore>; +pub type RecordingMerkleStore = MerkleStore>; #[derive(Debug, Default, Copy, Clone, Eq, PartialEq)] -pub struct Node { +pub struct StoreNode { left: RpoDigest, right: RpoDigest, } @@ -87,17 +87,17 @@ pub struct Node { /// assert_eq!(store.num_internal_nodes() - 255, 10); /// ``` #[derive(Debug, Clone, Eq, PartialEq)] -pub struct MerkleStore = BTreeMap> { +pub struct MerkleStore = BTreeMap> { nodes: T, } -impl> Default for MerkleStore { +impl> Default for MerkleStore { fn default() -> Self { Self::new() } } -impl> MerkleStore { +impl> MerkleStore { // CONSTRUCTORS // -------------------------------------------------------------------------------------------- @@ -297,7 +297,7 @@ impl> MerkleStore { let right: RpoDigest = node.right; debug_assert_eq!(Rpo256::merge(&[left, right]), value); - self.nodes.insert(value, Node { left, right }); + self.nodes.insert(value, StoreNode { left, right }); node.value }); @@ -369,7 +369,7 @@ impl> MerkleStore { let parent = Rpo256::merge(&[left_root, right_root]); self.nodes.insert( parent, - Node { + StoreNode { left: left_root, right: right_root, }, @@ -408,50 +408,50 @@ impl> MerkleStore { // CONVERSIONS // ================================================================================================ -impl> From<&MerkleTree> for MerkleStore { +impl> From<&MerkleTree> for MerkleStore { fn from(value: &MerkleTree) -> Self { let nodes = combine_nodes_with_empty_hashes(value.inner_nodes()).collect(); Self { nodes } } } -impl> From<&SimpleSmt> for MerkleStore { +impl> From<&SimpleSmt> for MerkleStore { fn from(value: &SimpleSmt) -> Self { let nodes = combine_nodes_with_empty_hashes(value.inner_nodes()).collect(); Self { nodes } } } -impl> From<&Mmr> for MerkleStore { +impl> From<&Mmr> for MerkleStore { fn from(value: &Mmr) -> Self { let nodes = combine_nodes_with_empty_hashes(value.inner_nodes()).collect(); Self { nodes } } } -impl> From<&TieredSmt> for MerkleStore { +impl> From<&TieredSmt> for MerkleStore { fn from(value: &TieredSmt) -> Self { let nodes = combine_nodes_with_empty_hashes(value.inner_nodes()).collect(); Self { nodes } } } -impl> From for MerkleStore { +impl> From for MerkleStore { fn from(values: T) -> Self { let nodes = values.into_iter().chain(empty_hashes().into_iter()).collect(); Self { nodes } } } -impl> FromIterator for MerkleStore { +impl> FromIterator for MerkleStore { fn from_iter>(iter: I) -> Self { let nodes = combine_nodes_with_empty_hashes(iter.into_iter()).collect(); Self { nodes } } } -impl> FromIterator<(RpoDigest, Node)> for MerkleStore { - fn from_iter>(iter: I) -> Self { +impl> FromIterator<(RpoDigest, StoreNode)> for MerkleStore { + fn from_iter>(iter: I) -> Self { let nodes = iter.into_iter().chain(empty_hashes().into_iter()).collect(); Self { nodes } } @@ -460,12 +460,12 @@ impl> FromIterator<(RpoDigest, Node)> for MerkleStore< // ITERATORS // ================================================================================================ -impl> Extend for MerkleStore { +impl> Extend for MerkleStore { fn extend>(&mut self, iter: I) { self.nodes.extend(iter.into_iter().map(|info| { ( info.value, - Node { + StoreNode { left: info.left, right: info.right, }, @@ -477,22 +477,22 @@ impl> Extend for MerkleStore { // SERIALIZATION // ================================================================================================ -impl Serializable for Node { +impl Serializable for StoreNode { fn write_into(&self, target: &mut W) { self.left.write_into(target); self.right.write_into(target); } } -impl Deserializable for Node { +impl Deserializable for StoreNode { fn read_from(source: &mut R) -> Result { let left = RpoDigest::read_from(source)?; let right = RpoDigest::read_from(source)?; - Ok(Node { left, right }) + Ok(StoreNode { left, right }) } } -impl> Serializable for MerkleStore { +impl> Serializable for MerkleStore { fn write_into(&self, target: &mut W) { target.write_u64(self.nodes.len() as u64); @@ -503,14 +503,14 @@ impl> Serializable for MerkleStore { } } -impl> Deserializable for MerkleStore { +impl> Deserializable for MerkleStore { fn read_from(source: &mut R) -> Result { let len = source.read_u64()?; - let mut nodes: Vec<(RpoDigest, Node)> = Vec::with_capacity(len as usize); + let mut nodes: Vec<(RpoDigest, StoreNode)> = Vec::with_capacity(len as usize); for _ in 0..len { let key = RpoDigest::read_from(source)?; - let value = Node::read_from(source)?; + let value = StoreNode::read_from(source)?; nodes.push((key, value)); } @@ -522,13 +522,13 @@ impl> Deserializable for MerkleStore { // ================================================================================================ /// Creates empty hashes for all the subtrees of a tree with a max depth of 255. -fn empty_hashes() -> impl IntoIterator { +fn empty_hashes() -> impl IntoIterator { let subtrees = EmptySubtreeRoots::empty_hashes(255); subtrees.iter().rev().copied().zip(subtrees.iter().rev().skip(1).copied()).map( |(child, parent)| { ( parent, - Node { + StoreNode { left: child, right: child, }, @@ -541,13 +541,13 @@ fn empty_hashes() -> impl IntoIterator { /// which includes the nodes associate with roots of empty subtrees up to a depth of 255. fn combine_nodes_with_empty_hashes( nodes: impl IntoIterator, -) -> impl Iterator { +) -> impl Iterator { nodes .into_iter() .map(|info| { ( info.value, - Node { + StoreNode { left: info.left, right: info.right, },