Expand description
Adaptive radix trie implementation
References
- Leis, V., Kemper, A., & Neumann, T. (2013, April). The adaptive radix tree: ARTful indexing for main-memory databases. In 2013 IEEE 29th International Conference on Data Engineering (ICDE) (pp. 38-49). IEEE. Link to PDF
Modules
- bytes 🔒
- Module containing implementations of the
TreeMap
and associated iterators/etc. - Module containing copies of Rust standard library unstable functions for use outside of the nightly distribution.
- nodes 🔒Trie node representation and manipulation
- A tagged pointer is a pointer (concretely a memory address) with additional data associated with it, such as an indirection bit or reference count. This additional data is often “folded” into the pointer, meaning stored inline in the data representing the address, taking advantage of certain properties of memory addressing.
- Utilities for inspecting the trie structure.
Structs
- The results of a successful delete operation
- The common header for all inner nodes
- Node that references between 17 and 49 children
- An iterator over all the children of a
InnerNode48
. - Node that references between 49 and 256 children
- An iterator over all the children of a
InnerNode256
. - Node type that has a compact representation for key bytes and children pointers.
- An iterator all the children of an
InnerNodeCompressed
. - An iterator over all the
LeafNode
s in a non-singleton tree. - Attempted to insert a key which was a prefix of an existing key in the tree.
- The results of a successful tree insert
- This struct contains the results from searching for an insert point for a new node in the tree.
- Node that contains a single leaf value.
- A container for the bytestring that is produced from
BytesMapping
conversion - A pointer to a
Node
. - An opaque pointer to a
Node
. - A restricted index only valid from 0 to LIMIT - 1.
- This struct represents a conversion of unsigned integers to the big endian format, so that the natural ordering of the numbers matches the lexicographic ordering of the bytes.
- This struct represents a conversion of IP addresses (V4 and V6) into their component bytes. The ordering of IP addresses is already the lexicographic ordering of the component bytes, so it will be preserved.
- This struct represents a conversion of signed integers to a format that allows the natural ordering of the numbers to match the lexicographic ordering of the bytes.
- An ordered map based on an adaptive radix tree.
- The error type returned when attempting to construct an index outside the accepted range of a PartialNodeIndex.
Enums
- An enum that encapsulates pointers to every type of Node
- A generic iterator that uses specific iterators for each
NodeType
(excluding leaves) inside. - The type of insert
- The representation of inner nodes
- An iterator over all the leaves in a tree.
Constants
- The number of bytes stored for path compression in the node header.
Traits
- Any type implementing
AsBytes
can be decomposed into bytes. - Trait representing a reversible conversion from a type to some sort of byte string, while preserving the ordering of the original type.
- Common methods implemented by all inner node.
- This trait is used to mark types which have a byte representation which is guaranteed to not be a prefix of any other value of the same type.
- All nodes which contain a runtime tag that validates their type.
- This trait is used to mark types where the lexicographic ordering of their byte representation (as output by
AsBytes::as_bytes
) matches their normal ordering (as determined byOrd
).
Functions
- Deallocate the given node and all children of the given node.
- Find and delete the maximum leaf in the tree, returning the maximum
LeafNode
. - Find and delete the minimum leaf in the tree, returning the minimum
LeafNode
. - Removes a key from the tree, returning the
LeafNode
corresponding to the key if the key was previously in the tree. - Insert the given key-value pair into the tree.
- Search for the leaf with the maximum key, by lexicographic ordering.
- Search for the leaf with the minimum key, by lexicographic ordering.
- Perform an iterative search for the insert point for the given key, starting at the given root node.
- Search in the given tree for the value stored with the given key.
Type Definitions
- Node that references between 2 and 4 children
- Node that references between 5 and 16 children