Expand description
Hash table layer
This uses the minimal utilities in crate::bucket_array::mem to build
a slightly higher level data structure thatβs meant to be used as a hash
table for uniformly distributed keys. The single and paired bucket arrays
from crate::bucket_array::mem are wrapped into concrete value-only
and key-value hash table stores, and unified again via common traits.
This introduces new data types and conversions that let us represent one item key in multiple formats: the full size key, its implied bucket number, the remaining unused key bits, and a packed version of that remainder.
StructsΒ§
- KeyValue
Bucket πArray - Concrete bucket array with parallel
BucketArrayMemoryfor key and value storage - Value
Bucket πArray - Concrete bucket array with a single
BucketArrayMemoryfor value storage
TraitsΒ§
- Count π
- Trait for types that can be used as a count of items in a bucket
- Insert π
- Trait for writing new key/value pairs to a bucket array
- Key π
- Types we can use as full width keys
- KeyLookup π
- Trait for bucket arrays that include storage for keys
- KeyStorage π
- Backing storage for a specific key type
- Shape π
- Trait for accessing the overall shape of a bucket array
- Value
Lookup π - Trait for bucket arrays that include storage for values