Expand description
A data structure offering zero-copy storage and retrieval of byte strings, with a focus
on the efficient storage of ASCII strings. Strings are mapped to usize
values.
ZeroTrie
does not support mutation because doing so would require recomputing the entire
data structure. Instead, it supports conversion to and from LiteMap
and BTreeMap
.
There are multiple variants of ZeroTrie
optimized for different use cases.
ยงExamples
use zerotrie::ZeroTrie;
let data: &[(&str, usize)] = &[("abc", 11), ("xyz", 22), ("axyb", 33)];
let trie: ZeroTrie<Vec<u8>> = data.iter().copied().collect();
assert_eq!(trie.get("axyb"), Some(33));
assert_eq!(trie.byte_len(), 18);
ยงInternal Structure
To read about the internal structure of ZeroTrie
, build the docs with private modules:
cargo doc --document-private-items --all-features --no-deps --open
Modulesยง
- builder ๐ZeroTrie Builder
- byte_phf ๐Byte Perfect Hash Function Internals
- Types for walking stepwise through a trie.
- error ๐
- helpers ๐
- options ๐Options for building and reading from a ZeroTrie.
- reader ๐Internal layout of ZeroTrie
- varint ๐Varint spec for ZeroTrie:
- zerotrie ๐
Structsยง
- A data structure that compactly maps from ASCII strings to integers in a case-insensitive way.
- A data structure that compactly maps from byte sequences to integers.
- A data structure that maps from a large number of byte strings to integers.
- A data structure that compactly maps from byte strings to integers.
- A data structure that compactly maps from ASCII strings to integers.
Enumsยง
- Error types for the
zerotrie
crate.