aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/ext/mapx.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'aoc-2020-gleam/src/ext/mapx.gleam')
-rw-r--r--aoc-2020-gleam/src/ext/mapx.gleam16
1 files changed, 16 insertions, 0 deletions
diff --git a/aoc-2020-gleam/src/ext/mapx.gleam b/aoc-2020-gleam/src/ext/mapx.gleam
new file mode 100644
index 0000000..244c1ac
--- /dev/null
+++ b/aoc-2020-gleam/src/ext/mapx.gleam
@@ -0,0 +1,16 @@
+import gleam/map.{Map}
+import gleam/iterator.{Iterator} as iter
+
+pub fn from_iter(iterator: Iterator(#(k, v))) -> Map(k, v) {
+ iter.fold(
+ over: iterator,
+ from: map.new(),
+ with: fn(acc, cur) { map.insert(acc, cur.0, cur.1) },
+ )
+}
+
+pub fn to_iter(map: Map(k, v)) -> Iterator(#(k, v)) {
+ map
+ |> map.to_list
+ |> iter.from_list
+}