## Expand description

Utility functions to interact with Substrate’s Base-16 Modified Merkle Patricia tree (“trie”).

## Modules

- Trie Cache
- Various re-exports from the
`trie-db`

crate. Utility methods to work on radix 16 nibble. - Externalities extension that provides access to the current proof size of the underlying recorder.
- Trie recorder
- This module is for non generic definition of trie type. Only the
`Hasher`

trait is generic in this case.

## Structs

- Storage proof in compact form.
- Various re-exports from the
`memory-db`

crate. Key function that only uses the hash `HashDB`

implementation that append a encoded prefix (unique id bytes) in addition to the prefix of every key value.`HashDBMut`

implementation that append a encoded prefix (unique id bytes) in addition to the prefix of every key value.- substrate trie layout
- substrate trie layout, with external value nodes.
- The Substrate format implementation of
`NodeCodec`

. Concrete implementation of a [`NodeCodecT`

] with SCALE encoding. - Various re-exports from the
`memory-db`

crate. Key function that concatenates prefix and hash. - Various re-exports from the
`trie-db`

crate. Records trie nodes as they pass it. - A proof that some set of key-value pairs are included in the storage trie. The proof contains the storage values so that the partial storage backend can be reconstructed by a verifier that does not already have access to the key-value pairs.
- Various re-exports from the
`trie-db`

crate. Iterator for going through all values in the trie in pre-order traversal order. - Various re-exports from the
`trie-db`

crate. Iterator for going through all of key with values in the trie in pre-order traversal order. - Various re-exports from the
`trie-db`

crate. Iterator for going through all nodes in the trie in pre-order traversal order. - The Substrate format implementation of
`TrieStream`

. Codec-flavored TrieStream.

## Enums

- Trie codec reexport, mainly child trie support for trie compact proof. Error for trie node decoding.
- Our
`NodeCodec`

-specific error. Error type used for trie related errors. - Either the
`hash`

or`value`

of a node depending on its size. - Various re-exports from the
`trie-db`

crate. A`NodePlan`

is a blueprint for decoding a node from a byte slice. The`NodePlan`

is created by parsing an encoded node and can be reused multiple times. This is useful as a`Node`

borrows from a byte slice and this struct does not. - Various re-exports from the
`trie-db`

crate. Plan for value representation in`NodePlan`

. - Errors that may occur during proof verification. Most of the errors types simply indicate that the proof is invalid with respect to the statement being verified, and the exact error type can be used for debugging.

## Statics

- Various re-exports from the
`hash-db`

crate. An empty prefix constant. Can be use when the prefix is not use internally or for root nodes.

## Traits

- Reexport from
`hash_db`

, with genericity set for`Hasher`

trait. - Various re-exports from the
`hash-db`

crate. Trait modelling datastore keyed by a hash defined by the`Hasher`

. - Various re-exports from the
`memory-db`

crate. - Type that is able to provide a proof size estimation.
- Various re-exports from the
`trie-db`

crate. Description of what kind of query will be made to the trie. - Various re-exports from the
`trie-db`

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

crate. A cache that can be used to speed-up certain operations when accessing the trie. - Various re-exports from the
`trie-db`

crate. This trait associates a trie definition with preferred methods. It also contains own default implementations and can be used to allow switching implementation. - Various re-exports from the
`trie-db`

crate. Trait with definition of trie layout. Contains all associated trait needed for a trie definition or implementation. - Various re-exports from the
`trie-db`

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

crate. A trie recorder that can be used to record all kind of [`TrieAccess`

]’s. - Type that is able to provide a
`trie_db::TrieRecorder`

.

## Functions

- Determine a child trie root given a hash DB and delta values. H is the default hasher, but a generic implementation may ignore this type parameter and use other hashers.
- Determine a child trie root given its ordered contents, closed form. H is the default hasher, but a generic implementation may ignore this type parameter and use other hashers.
- Trie codec reexport, mainly child trie support for trie compact proof. Decode a compact proof.
- Determine a trie root given a hash DB and delta values.
- Determine the empty child trie root.
- Determine the empty trie root.
- Trie codec reexport, mainly child trie support for trie compact proof. Encode a compact proof.
- Create a proof for a subset of keys in a trie.
- Various re-exports from the
`memory-db`

crate. Derive a database key from hash value of the node (key) and the node prefix. - Read the
`trie_db::MerkleValue`

of the node that is the closest descendant for the provided child key. - Read a hash from the child trie.
- Read a value from the child trie.
- Read a value from the child trie with given query.
- Read the
`trie_db::MerkleValue`

of the node that is the closest descendant for the provided key. - Read a value from the trie.
- Read a value from the trie with given Query.
- Verify a set of key-value pairs against a trie root and a proof.

## Type Aliases

- Various re-exports from the
`trie-db`

crate. Alias accessor to`NodeCodec`

associated`Error`

type from a`TrieLayout`

. - Various re-exports from the
`trie-db`

crate. Database value - Reexport from
`hash_db`

, with genericity set for`Hasher`

trait. - Reexport from
`hash_db`

, with genericity set for`Hasher`

trait. - Querying interface, as in
`trie_db`

but less generic. - Reexport from
`hash_db`

, with genericity set for`Hasher`

trait. This uses a noops`KeyFunction`

(key addressing must be hashed or using an encoding scheme that avoid key conflict). - Reexport from
`hash_db`

, with genericity set for`Hasher`

trait. This uses a`KeyFunction`

for prefixing keys internally (avoiding key conflict for non random keys). - Persistent trie database read-access interface for the a given hasher.
- Builder for creating a
`TrieDB`

. - Persistent trie database write-access interface for the a given hasher.
- Builder for creating a
`TrieDBMut`

. - TrieDB error over
`TrieConfiguration`

trait. - Hash type for a trie layout.