Trait trie_root::TrieStream [−][src]
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
fn append_empty_data(&mut self)
fn append_empty_data(&mut self)
Append an Empty node
Start a new Branch node, possibly with a value; takes a list indicating which slots in the Branch node has further child nodes.
fn append_extension(&mut self, key: &[u8])
fn append_extension(&mut self, key: &[u8])
Append an Extension node
fn 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
fn append_empty_child(&mut self)
fn append_empty_child(&mut self)
Append an empty child node. Optional.
fn 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).