Struct ProofEncoder

Source
pub struct ProofEncoder { /* private fields */ }
Expand description

An encoder that manages a reverse buffer which can be used to convert the root-to-leaf ordering of the TreeWalker to the proper stack ordering.

Implementations§

Source§

impl ProofEncoder

Source

pub fn new(n: usize) -> Self

Create a new proof encoder for encoding a tree with the provided max number of items. An instance of ProofEncoder can not be used to encode more than the n items specified here. Providing an n smaller than the actual number of nodes can result in panics.

Source

pub fn insert(&mut self, direction: Direction, hash: &[u8; 32])

Insert a new node into the tree, the direction determines whether or not we should be flipping the stack order when we’re trying to rebuild the tree later on (on the client side).

§Panics

If called more than the number of times specified when it got constructed.

Source

pub fn finalize(self) -> ProofBuf

Finalize the result of the encoder and return the proof buffer.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.