# [−][src]Crate trie_db

Trie interface and implementation.

## Re-exports

`pub use self::triedb::TrieDB;` |

`pub use self::triedb::TrieDBIterator;` |

`pub use self::triedbmut::TrieDBMut;` |

`pub use self::triedbmut::ChildReference;` |

`pub use self::sectriedbmut::SecTrieDBMut;` |

`pub use self::sectriedb::SecTrieDB;` |

`pub use self::recorder::Recorder;` |

`pub use self::recorder::Record;` |

## Modules

nibble_ops | Utility methods to work on radix 16 nibble. |

node | |

proof | Generation and verification of compact proofs for Merkle-Patricia tries. |

recorder | Trie query recorder. |

sectriedb | |

sectriedbmut | |

triedb | |

triedbmut | In-memory trie representation. |

## Structs

FatDB | A |

FatDBIterator | Itarator over inserted pairs of key values. |

FatDBMut | A mutable |

Lookup | Trie lookup helper object. |

NibbleSlice | Nibble-orientated view onto byte-slice, allowing nibble-precision offsets. |

NibbleVec | Owning, nibble-oriented byte vector. Counterpart to |

TrieBuilder | Get trie root and insert visited node in a hash_db.
As for all |

TrieDBNodeIterator | Iterator for going through all nodes in the trie in pre-order traversal order. |

TrieFactory | Trie factory. |

TrieRoot | Calculate the trie root of the trie. |

TrieRootPrint | Calculate the trie root of the trie. Print a debug trace. |

TrieRootUnhashed | Get the trie root node encoding. |

## Enums

TrieError | Trie Errors. |

TrieKinds | All different kinds of tries. This is used to prevent a heap allocation for every created trie. |

TrieSpec | Trie types |

## Traits

HashDB | Trait modelling datastore keyed by a hash defined by the |

HashDBRef | Trait for immutable reference of HashDB. |

Hasher | Trait describing an object that can hash a slice of bytes. Used to abstract
other types over the hashing algorithm. Defines a single |

NodeCodec | Trait for trie node encoding/decoding. |

ProcessEncodedNode | Visitor trait to implement when using |

Query | Description of what kind of query will be made to the trie. |

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

TrieConfiguration | This trait associates a trie definition with preferred methods. It also contains own default implementations and can be used to allow switching implementation. |

TrieIterator | A trie iterator that also supports random access ( |

TrieLayout | Trait with definition of trie layout. Contains all associated trait needed for a trie definition or implementation. |

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

## Functions

decode_compact | Reconstructs a partial trie DB from a compact representation. The encoding is a vector of
mutated trie nodes with those child references omitted. The decode function reads them in order
from the given slice, reconstructing the full nodes and inserting them into the given |

decode_compact_from_iter | Variant of 'decode_compact' that accept an iterator of encoded nodes as input. |

encode_compact | Generates a compact representation of the partial trie stored in the given DB. The encoding is a vector of mutated trie nodes with those child references omitted. The mutated trie nodes are listed in pre-order traversal order so that the full nodes can be efficiently reconstructed recursively. |

trie_visit | Function visiting trie from key value inputs with a |

## Type Definitions

CError | Alias accessor to |

DBValue | Database value |

Partial | Representation of a nible slice (right aligned). It contains a right aligned padded first byte (first pair element is the number of nibbles (0 to max nb nibble - 1), second pair element is the padded nibble), and a slice over the remaining bytes. |

Result | Trie result type.
Boxed to avoid copying around extra space for the |

TrieHash | Alias accessor to hasher hash output type from a |

TrieItem | Trie-Item type used for iterators over trie data. |