pub trait AppendableMerkleTreeScheme: MerkleTreeScheme<Index = u64> {
// Required method
fn push(
&mut self,
elem: impl Borrow<Self::Element>,
) -> Result<(), MerkleTreeError>;
// Provided method
fn extend(
&mut self,
elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,
) -> Result<(), MerkleTreeError> { ... }
}
Expand description
Merkle tree that allows insertion at back. Abstracted as a commitment for append-only vector.
Required Methods§
Provided Methods§
Sourcefn extend(
&mut self,
elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,
) -> Result<(), MerkleTreeError>
fn extend( &mut self, elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, ) -> Result<(), MerkleTreeError>
Insert a list of new values at the leftmost available slots
elems
- elements to insertreturns
- Ok(()) if successful. If there are too many elements, insertions will be performed until the merkle tree is full, and will return an Err().
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.