Trait trie_db::Trie

source ·
pub trait Trie<L: TrieLayout> {
    // Required methods
    fn root(&self) -> &TrieHash<L>;
    fn get_hash(
        &self,
        key: &[u8]
    ) -> Result<Option<TrieHash<L>>, TrieHash<L>, CError<L>>;
    fn get_with<Q: Query<L::Hash>>(
        &self,
        key: &[u8],
        query: Q
    ) -> Result<Option<Q::Item>, TrieHash<L>, CError<L>>;
    fn iter<'a>(
        &'a self
    ) -> Result<Box<dyn TrieIterator<L, Item = TrieItem<TrieHash<L>, CError<L>>> + 'a>, TrieHash<L>, CError<L>>;
    fn key_iter<'a>(
        &'a self
    ) -> Result<Box<dyn TrieIterator<L, Item = TrieKeyItem<TrieHash<L>, CError<L>>> + 'a>, TrieHash<L>, CError<L>>;

    // Provided methods
    fn is_empty(&self) -> bool { ... }
    fn contains(&self, key: &[u8]) -> Result<bool, TrieHash<L>, CError<L>> { ... }
    fn get(&self, key: &[u8]) -> Result<Option<DBValue>, TrieHash<L>, CError<L>> { ... }
}
Expand description

A key-value datastore implemented as a database-backed modified Merkle tree.

Required Methods§

source

fn root(&self) -> &TrieHash<L>

Return the root of the trie.

source

fn get_hash( &self, key: &[u8] ) -> Result<Option<TrieHash<L>>, TrieHash<L>, CError<L>>

Returns the hash of the value for key.

source

fn get_with<Q: Query<L::Hash>>( &self, key: &[u8], query: Q ) -> Result<Option<Q::Item>, TrieHash<L>, CError<L>>

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 = TrieItem<TrieHash<L>, CError<L>>> + 'a>, TrieHash<L>, CError<L>>

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

source

fn key_iter<'a>( &'a self ) -> Result<Box<dyn TrieIterator<L, Item = TrieKeyItem<TrieHash<L>, CError<L>>> + 'a>, TrieHash<L>, CError<L>>

Returns a depth-first iterator over the keys of elemets of trie.

Provided Methods§

source

fn is_empty(&self) -> bool

Is the trie empty?

source

fn contains(&self, key: &[u8]) -> Result<bool, TrieHash<L>, CError<L>>

Does the trie contain a given key?

source

fn get(&self, key: &[u8]) -> Result<Option<DBValue>, TrieHash<L>, CError<L>>

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

Implementors§

source§

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

source§

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

source§

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

source§

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