Trie

Trait Trie 

Source
pub trait Trie<L>
where L: TrieLayout,
{ // Required methods fn root(&self) -> &<<L as TrieLayout>::Hash as Hasher>::Out; fn get_with<'a, 'key, Q>( &'a self, key: &'key [u8], query: Q, ) -> Result<Option<<Q as Query<<L as TrieLayout>::Hash>>::Item>, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>> where 'a: 'key, Q: Query<<L as TrieLayout>::Hash>; fn iter<'a>( &'a self, ) -> Result<Box<dyn TrieIterator<L, Item = Result<(Vec<u8>, Vec<u8>), Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>> + 'a>, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>; // Provided methods fn is_empty(&self) -> bool { ... } fn contains( &self, key: &[u8], ) -> Result<bool, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>> { ... } fn get<'a, 'key>( &'a self, key: &'key [u8], ) -> Result<Option<Vec<u8>>, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>> where 'a: 'key { ... } }
Expand description

Various re-exports from the tetsy-trie-db crate. A key-value datastore implemented as a database-backed modified Merkle tree.

Required Methods§

Source

fn root(&self) -> &<<L as TrieLayout>::Hash as Hasher>::Out

Return the root of the trie.

Source

fn get_with<'a, 'key, Q>( &'a self, key: &'key [u8], query: Q, ) -> Result<Option<<Q as Query<<L as TrieLayout>::Hash>>::Item>, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>
where 'a: 'key, Q: Query<<L as TrieLayout>::Hash>,

Search for the key with the given query parameter. See the docs of the Query trait for more details.

Source

fn iter<'a>( &'a self, ) -> Result<Box<dyn TrieIterator<L, Item = Result<(Vec<u8>, Vec<u8>), Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>> + 'a>, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>

Returns a depth-first iterator over the elements of trie.

Provided Methods§

Source

fn is_empty(&self) -> bool

Is the trie empty?

Source

fn contains( &self, key: &[u8], ) -> Result<bool, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>

Does the trie contain a given key?

Source

fn get<'a, 'key>( &'a self, key: &'key [u8], ) -> Result<Option<Vec<u8>>, Box<TrieError<<<L as TrieLayout>::Hash as Hasher>::Out, <<L as TrieLayout>::Codec as NodeCodec>::Error>>>
where 'a: 'key,

What is the value of the given key in this trie?

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'db, L> Trie<L> for TrieKinds<'db, L>
where L: TrieLayout,

Source§

impl<'db, L> Trie<L> for FatDB<'db, L>
where L: TrieLayout,

Source§

impl<'db, L> Trie<L> for SecTrieDB<'db, L>
where L: TrieLayout,

Source§

impl<'db, L> Trie<L> for TrieDB<'db, L>
where L: TrieLayout,