Skip to content

Elixir implementation of bidirectional map and multimap

License

Notifications You must be signed in to change notification settings

mkaput/elixir-bimap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Elixir implementation of bidirectional map and multimap

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages