Skip to content

Commit 2f23acb

Browse files
committed
add readme examples
1 parent 246b9ad commit 2f23acb

3 files changed

Lines changed: 59 additions & 1 deletion

File tree

README.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
88
[![Last Updated](https://img.shields.io/github/last-commit/mkaput/elixir-bimap.svg)](https://github.com/mkaput/elixir-bimap/commits/master)
99

10-
Elixir implementation of bidirectional map and multimap.
10+
Elixir implementation of bidirectional map (`BiMap`) and multimap (`BiMultiMap`).
1111

1212
## Installation
1313

@@ -19,6 +19,40 @@ def deps do
1919
end
2020
```
2121

22+
## Getting started
23+
24+
For more examples, checkout [`BiMap`](https://hexdocs.pm/bimap/BiMap.html) and [`BiMultiMap`](https://hexdocs.pm/bimap/BiMultiMap.html) on hex docs.
25+
26+
### BiMap
27+
28+
```elixir
29+
iex(1)> Mix.install [:bimap]
30+
iex(2)> bm = BiMap.new(a: 1, b: 2)
31+
#BiMap<[a: 1, b: 2]>
32+
iex(3)> BiMap.get(bm, :a)
33+
1
34+
iex(4)> BiMap.get_key(bm, 2)
35+
:b
36+
iex(5)> BiMap.put(bm, :a, 3)
37+
#BiMap<[a: 3, b: 2]>
38+
iex(6)> BiMap.put(bm, :c, 2)
39+
#BiMap<[a: 1, c: 2]>
40+
```
41+
42+
### BiMultiMap
43+
44+
```elixir
45+
iex(1)> Mix.install [:bimap]
46+
iex(2)> mm = BiMultiMap.new(a: 1, b: 2, b: 1)
47+
#BiMultiMap<[a: 1, b: 1, b: 2]>
48+
iex(3)> BiMultiMap.get(mm, :a)
49+
[1]
50+
iex(4)> BiMultiMap.get_keys(mm, 1)
51+
[:a, :b]
52+
iex(5)> BiMultiMap.put(mm, :a, 3)
53+
#BiMultiMap<[a: 1, a: 3, b: 1, b: 2]>
54+
```
55+
2256
## License
2357

2458
See the [LICENSE] file for license rights and limitations (MIT).

lib/bimap.ex

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,19 @@ defmodule BiMap do
2222
2323
Keys and values are compared using the exact-equality operator (`===`).
2424
25+
## Example
26+
27+
iex> bm = BiMap.new(a: 1, b: 2)
28+
#BiMap<[a: 1, b: 2]>
29+
iex> BiMap.get(bm, :a)
30+
1
31+
iex> BiMap.get_key(bm, 2)
32+
:b
33+
iex> BiMap.put(bm, :a, 3)
34+
#BiMap<[a: 3, b: 2]>
35+
iex> BiMap.put(bm, :c, 2)
36+
#BiMap<[a: 1, c: 2]>
37+
2538
## Protocols
2639
2740
`BiMap` implements `Enumerable`, `Collectable` and `Inspect` protocols.

lib/bimultimap.ex

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@ defmodule BiMultiMap do
1313
1414
Keys and values are compared using the exact-equality operator (`===`).
1515
16+
## Example
17+
18+
iex> mm = BiMultiMap.new(a: 1, b: 2, b: 1)
19+
#BiMultiMap<[a: 1, b: 1, b: 2]>
20+
iex> BiMultiMap.get(mm, :a)
21+
[1]
22+
iex> BiMultiMap.get_keys(mm, 1)
23+
[:a, :b]
24+
iex> BiMultiMap.put(mm, :a, 3)
25+
#BiMultiMap<[a: 1, a: 3, b: 1, b: 2]>
26+
1627
## Protocols
1728
1829
`BiMultiMap` implements `Enumerable`, `Collectable` and `Inspect` protocols.

0 commit comments

Comments
 (0)