Trait trie_root::TrieStream

source ·
pub trait TrieStream {
    // Required methods
    fn new() -> Self;
    fn append_empty_data(&mut self);
    fn begin_branch(
        &mut self,
        maybe_key: Option<&[u8]>,
        maybe_value: Option<Value<'_>>,
        has_children: impl Iterator<Item = bool>
    );
    fn append_leaf(&mut self, key: &[u8], value: Value<'_>);
    fn append_extension(&mut self, key: &[u8]);
    fn append_substream<H: Hasher>(&mut self, other: Self);
    fn out(self) -> Vec<u8> ;

    // Provided methods
    fn append_empty_child(&mut self) { ... }
    fn end_branch(&mut self, _value: Option<Value<'_>>) { ... }
}
Expand description

Byte-stream oriented trait for constructing closed-form tries.

Required Methods§

source

fn new() -> Self

Construct a new TrieStream

source

fn append_empty_data(&mut self)

Append an Empty node

source

fn begin_branch( &mut self, maybe_key: Option<&[u8]>, maybe_value: Option<Value<'_>>, has_children: impl Iterator<Item = bool> )

Start a new Branch node, possibly with a value; takes a list indicating which slots in the Branch node has further child nodes.

source

fn append_leaf(&mut self, key: &[u8], value: Value<'_>)

Append a Leaf node

source

fn append_extension(&mut self, key: &[u8])

Append an Extension node

source

fn append_substream<H: Hasher>(&mut self, other: Self)

Append a Branch of Extension substream

source

fn out(self) -> Vec<u8>

Return the finished TrieStream as a vector of bytes.

Provided Methods§

source

fn append_empty_child(&mut self)

Append an empty child node. Optional.

source

fn end_branch(&mut self, _value: Option<Value<'_>>)

Wrap up a Branch node portion of a TrieStream and append the value stored on the Branch (if any).

Implementors§