Awesome
BiMap
Elixir implementation of bidirectional map (BiMap
) and multimap (BiMultiMap
).
Installation
The package can be installed by adding bimap
to your list of dependencies in mix.exs
:
def deps do
[{:bimap, "~> 1.3"}]
end
Getting started
For more examples, checkout BiMap
and BiMultiMap
on hex docs.
BiMap
iex(1)> Mix.install [:bimap]
iex(2)> bm = BiMap.new(a: 1, b: 2)
BiMap.new([a: 1, b: 2])
iex(3)> BiMap.get(bm, :a)
1
iex(4)> BiMap.get_key(bm, 2)
:b
iex(5)> BiMap.put(bm, :a, 3)
BiMap.new([a: 3, b: 2])
iex(6)> BiMap.put(bm, :c, 2)
BiMap.new([a: 1, c: 2])
BiMultiMap
iex(1)> Mix.install [:bimap]
iex(2)> mm = BiMultiMap.new(a: 1, b: 2, b: 1)
BiMultiMap.new([a: 1, b: 1, b: 2])
iex(3)> BiMultiMap.get(mm, :a)
[1]
iex(4)> BiMultiMap.get_keys(mm, 1)
[:a, :b]
iex(5)> BiMultiMap.put(mm, :a, 3)
BiMultiMap.new([a: 1, a: 3, b: 1, b: 2])
Changelog
All notable changes to this project are documented on the GitHub releases page.
License
See the LICENSE file for license rights and limitations (MIT).