Crate isomorphism [] [src]

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.

Modules

bitfield

Definitions of bitfield things for hashmap neighbourhoods.

Structs

BiMap

The two way hashmap itself. See the crate level documentation for more information. Uses hopscotch hashing internally.

BiMapBuilder

A builder for the bimap. Allows for the parameters used to tune the BiMap to be configured.

IntoIter

An owning iterator over the pairs stored in a BiMap.

Iter

An iterator over the pairs stored in a BiMap.