Does anyone know of a dictionary-like data structure that represents a bijective (*one-to-one* and *onto*) map? And if so, is there a Julia implementation of such a data structure?

Ideally this data structure would have a method for getting a key given a value (in addition to the usual method for getting a value given a key).

So the interface might look something like this:

```
julia> b = BijectiveMap(:a => 1);
julia> get_value(b, :a)
1
julia> get_key(b, 1)
:a
```