trie-db 0.29.1

Merkle-Patricia Trie generic over key hasher and node encoding
Documentation
# Changelog

The format is based on [Keep a Changelog].

[Keep a Changelog]: http://keepachangelog.com/en/1.0.0/

## [0.29.1] - 2024-05-24
- Fix backward iterator seek [#215]https://github.com/paritytech/trie/pull/215

## [0.29.0] - 2024-03-04
- Implements `DoubleEndedIterator` for trie iterator [#208]https://github.com/paritytech/trie/pull/208

## [0.28.0] - 2023-09-12
- Make `trie_nodes_recorded_for_key` work for inline values [#194]https://github.com/paritytech/trie/pull/194
- trie-db: Fetch the closest merkle value [#199]https://github.com/paritytech/trie/pull/199
- fixing triedbmut lookup, added some testing in test. [#198]https://github.com/paritytech/trie/pull/198

## [0.27.1] - 2023-03-17
- Fix `TrieDBRawIterator::prefix_then_seek` [#190]https://github.com/paritytech/trie/pull/190

## [0.27.0] - 2023-03-14
- Fix compact proof to skip including value node hashes [#187]https://github.com/paritytech/trie/pull/187
- Update dependencies. [#188]https://github.com/paritytech/trie/pull/188

## [0.26.0] - 2023-02-24
- `TrieDBRawIterator` and `TrieDBNodeIterator` now return a node inside of an `Arc` instead of `Rc` [#185]https://github.com/paritytech/trie/pull/185
- `TrieDBRawIterator` is now `Send` and `Sync` [#185]https://github.com/paritytech/trie/pull/185

## [0.25.1] - 2023-02-14
- Fix recorder behavior: [#184]https://github.com/paritytech/trie/pull/184

## [0.25.0] - 2023-02-03
- Updated `hashbrown` to 0.13.2: [#177]https://github.com/paritytech/trie/pull/177
- Iterator refactoring: [#181]https://github.com/paritytech/trie/pull/181
  - Removed `TrieDBKeyIterator::suspend` and `SuspendedTrieDBKeyIterator`
  - Added `TrieDBRawIterator`

## [0.24.0] - 2022-08-04
- Do not check for root in `TrieDB` and `TrieDBMut` constructors: [#155]https://github.com/paritytech/trie/pull/155

  To get back the old behavior you have to add the following code:
  ```
  if !db.contains(root, EMPTY_PREFIX) {
    return Err(InvalidStateRoot(root))
  }
  ```
- Introduce trie level cache & recorder: [#157]https://github.com/paritytech/trie/pull/157

  This pull requests introduced a cache that is directly baked into the trie-db. This
  cache can be used to speed up accessing data in the trie. Alongside the cache, the recorder
  was also made a first class citizen of the trie. The pull requests introduces quite a lot of changes
  to the trie api. `TrieDB` and `TrieDBMut` are now for example now using a builder pattern. For more information
  see the pr.

## [0.23.1] - 2022-02-04
- Updated `hashbrown` to 0.12. [#150]https://github.com/paritytech/trie/pull/150

## [0.23.0] - 2021-10-19
- Support for value nodes. [#142]https://github.com/paritytech/trie/pull/142

## [0.22.6] - 2021-07-02
- Updated `hashbrown` to 0.11. [#131]https://github.com/paritytech/trie/pull/131

## [0.22.3] - 2021-01-28
### Added
- Decode with an iterator. [#121]https://github.com/paritytech/trie/pull/121

## [0.22.2] - 2021-01-05
- Update `hashbrown` to 0.9. [#118]https://github.com/paritytech/trie/pull/118

## [0.22.1] - 2020-07-24
- Use `ahash` feature of hashbrown. [#103]https://github.com/paritytech/trie/pull/103

## [0.22.0] - 2020-07-06
- Update hashbrown to 0.8. [#97]https://github.com/paritytech/trie/pull/97

## [0.21.0] - 2020-06-04
- Added `ALLOW_EMPTY` to `TrieLayout`. [#92]https://github.com/paritytech/trie/pull/92

## [0.20.0] - 2020-02-07
- Prefix iterator. [#39]https://github.com/paritytech/trie/pull/39
- Update trie-root to v0.16.0 and memory-db to v0.19.0 and reference-trie to v0.20.0 [#78]https://github.com/paritytech/trie/pull/78

## [0.19.2] - 2020-01-16
- Compact proofs support. [#45]https://github.com/paritytech/trie/pull/45