pub struct MerkleTreeBuilder { /* private fields */ }
Expand description
A MerkleTreeBuilder
generates a MerkleTree
from one or more write calls.
§Examples
let data = vec![0xff; 8192];
let mut builder = MerkleTreeBuilder::new();
for i in 0..8 {
builder.write(&data[..]);
}
assert_eq!(
builder.finish().root(),
"f75f59a944d2433bc6830ec243bfefa457704d2aed12f30539cd4f18bf1d62cf"
.parse()
.unwrap()
);
Implementations§
Source§impl MerkleTreeBuilder
impl MerkleTreeBuilder
Sourcepub fn write(&mut self, buf: &[u8])
pub fn write(&mut self, buf: &[u8])
Append a buffer of bytes to the merkle tree.
No internal buffering is required if all writes are BLOCK_SIZE
aligned.
Sourcepub fn push_data_hash(&mut self, hash: Hash)
pub fn push_data_hash(&mut self, hash: Hash)
Save a data block hash, propagating full blocks of hashes to higher layers. Also clear a stored data block.
Sourcepub fn finish(self) -> MerkleTree
pub fn finish(self) -> MerkleTree
Finalize all levels of the merkle tree, converting this MerkleTreeBuilder
instance to a
MerkleTree
.
Trait Implementations§
Source§impl Clone for MerkleTreeBuilder
impl Clone for MerkleTreeBuilder
Source§fn clone(&self) -> MerkleTreeBuilder
fn clone(&self) -> MerkleTreeBuilder
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for MerkleTreeBuilder
impl Debug for MerkleTreeBuilder
Source§impl Default for MerkleTreeBuilder
impl Default for MerkleTreeBuilder
Source§impl From<MerkleTreeBuilder> for MerkleTree
impl From<MerkleTreeBuilder> for MerkleTree
Source§fn from(builder: MerkleTreeBuilder) -> Self
fn from(builder: MerkleTreeBuilder) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for MerkleTreeBuilder
impl RefUnwindSafe for MerkleTreeBuilder
impl Send for MerkleTreeBuilder
impl Sync for MerkleTreeBuilder
impl Unpin for MerkleTreeBuilder
impl UnwindSafe for MerkleTreeBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)