pub struct Tree<H: Hasher> { /* private fields */ }Expand description
Constructed Binary Merkle Tree (BMT).
Implementations§
Source§impl<H: Hasher> Tree<H>
impl<H: Hasher> Tree<H>
Sourcepub fn proof(&self, position: u32) -> Result<Proof<H>, Error>
pub fn proof(&self, position: u32) -> Result<Proof<H>, Error>
Generates a Merkle proof for the leaf at position.
The proof contains the sibling digest at each level needed to reconstruct the root.
Sourcepub fn range_proof(&self, start: u32, end: u32) -> Result<RangeProof<H>, Error>
pub fn range_proof(&self, start: u32, end: u32) -> Result<RangeProof<H>, Error>
Generates a Merkle range proof for a contiguous set of leaves from start
to end (inclusive).
The proof contains the minimal set of sibling digests needed to reconstruct the root for all elements in the range. This is more efficient than individual proofs when proving multiple consecutive elements.
Trait Implementations§
Auto Trait Implementations§
impl<H> Freeze for Tree<H>
impl<H> RefUnwindSafe for Tree<H>
impl<H> Send for Tree<H>
impl<H> Sync for Tree<H>
impl<H> Unpin for Tree<H>
impl<H> UnwindSafe for Tree<H>
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§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more