Crate blart

source ·
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

Module containing implementations of the TreeMap and associated iterators/etc.
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 LeafNodes 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 pointer to a Node.
An opaque pointer to a Node.
A restricted index only valid from 0 to LIMIT - 1.
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.
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 by Ord).

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