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