• Stars
    star
    24
  • Rank 986,245 (Top 20 %)
  • Language
    Elixir
  • License
    MIT License
  • Created about 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Elixir implementation of bidirectional map and multimap

BiMap

Version Hex Docs

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).