Trait trie_root::TrieStream
source · pub trait TrieStream {
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> ⓘ;
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§
sourcefn append_empty_data(&mut self)
fn append_empty_data(&mut self)
Append an Empty node
sourcefn begin_branch(
&mut self,
maybe_key: Option<&[u8]>,
maybe_value: Option<Value<'_>>,
has_children: impl Iterator<Item = bool>
)
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.
sourcefn append_leaf(&mut self, key: &[u8], value: Value<'_>)
fn append_leaf(&mut self, key: &[u8], value: Value<'_>)
Append a Leaf node
sourcefn append_extension(&mut self, key: &[u8])
fn append_extension(&mut self, key: &[u8])
Append an Extension node
sourcefn append_substream<H: Hasher>(&mut self, other: Self)
fn append_substream<H: Hasher>(&mut self, other: Self)
Append a Branch of Extension substream
Provided Methods§
sourcefn append_empty_child(&mut self)
fn append_empty_child(&mut self)
Append an empty child node. Optional.
sourcefn end_branch(&mut self, _value: Option<Value<'_>>)
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).