Bidirectional hashmaps! This crate aims to provide a data structure that can take store a 1:1 relation between two different types, and provide constant time lookup within this relation.
Unlike a regular hashmap, which provides lookups from "keys" to "values", the two directional
hashmap provides lookups from "left keys" to "right keys" and from "right keys" to "left keys".
The difference between a "value" in a hashmap and a "right key" in a
BiMap is that the right
key must be hashable and comparable, and that duplicate right keys cannot exist within the
bimap, even if they have different left keys mapping to them.
Definitions of bitfield things for hashmap neighbourhoods.
The two way hashmap itself. See the crate level documentation for more information. Uses hopscotch hashing internally.
A builder for the bimap. Allows for the parameters used to tune the BiMap to be configured.
An owning iterator over the pairs stored in a BiMap.
An iterator over the pairs stored in a BiMap.