Struct miden_processor::crypto::MerkleTree  
pub struct MerkleTree { /* private fields */ }Expand description
A fully-balanced binary Merkle tree (i.e., a tree where the number of leaves is a power of two).
Implementations§
§impl MerkleTree
 
impl MerkleTree
pub fn new<T>(leaves: T) -> Result<MerkleTree, MerkleError>
pub fn new<T>(leaves: T) -> Result<MerkleTree, MerkleError>
Returns a Merkle tree instantiated from the provided leaves.
§Errors
Returns an error if the number of leaves is smaller than two or is not a power of two.
pub fn depth(&self) -> u8
pub fn depth(&self) -> u8
Returns the depth of this Merkle tree.
Merkle tree of depth 1 has two leaves, depth 2 has four leaves etc.
pub fn get_node(&self, index: NodeIndex) -> Result<RpoDigest, MerkleError>
pub fn get_node(&self, index: NodeIndex) -> Result<RpoDigest, MerkleError>
Returns a node at the specified depth and index value.
§Errors
Returns an error if:
- The specified depth is greater than the depth of the tree.
- The specified index is not valid for the specified depth.
pub fn get_path(&self, index: NodeIndex) -> Result<MerklePath, MerkleError>
pub fn get_path(&self, index: NodeIndex) -> Result<MerklePath, MerkleError>
Returns a Merkle path to the node at the specified depth and index value. The node itself is not included in the path.
§Errors
Returns an error if:
- The specified depth is greater than the depth of the tree.
- The specified value is not valid for the specified depth.
pub fn leaves(&self) -> impl Iterator<Item = (u64, &[BaseElement; 4])>
pub fn leaves(&self) -> impl Iterator<Item = (u64, &[BaseElement; 4])>
Returns an iterator over the leaves of this MerkleTree.
pub fn inner_nodes(&self) -> InnerNodeIterator<'_>
pub fn inner_nodes(&self) -> InnerNodeIterator<'_>
Returns n iterator over every inner node of this MerkleTree.
The iterator order is unspecified.
pub fn update_leaf<'a>(
    &'a mut self,
    index_value: u64,
    value: [BaseElement; 4]
) -> Result<(), MerkleError>
pub fn update_leaf<'a>( &'a mut self, index_value: u64, value: [BaseElement; 4] ) -> Result<(), MerkleError>
Replaces the leaf at the specified index with the provided value.
§Errors
Returns an error if the specified index value is not a valid leaf value for this tree.
Trait Implementations§
§impl Clone for MerkleTree
 
impl Clone for MerkleTree
§fn clone(&self) -> MerkleTree
 
fn clone(&self) -> MerkleTree
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for MerkleTree
 
impl Debug for MerkleTree
§impl<T> From<&MerkleTree> for MerkleStore<T>
 
impl<T> From<&MerkleTree> for MerkleStore<T>
§fn from(value: &MerkleTree) -> MerkleStore<T>
 
fn from(value: &MerkleTree) -> MerkleStore<T>
§impl PartialEq for MerkleTree
 
impl PartialEq for MerkleTree
§fn eq(&self, other: &MerkleTree) -> bool
 
fn eq(&self, other: &MerkleTree) -> bool
self and other values to be equal, and is used
by ==.