Nested (nested_ex v0.1.1)
Library to work with nested maps Elixir reimplementation of Erlang library nested
Summary
Functions
Appends value to List at key path.
Appends value to List at key path. If key not found at path, add key and append value to default List provided Similar to Python's defaultdict
Examples
iex> Nested.get(%{test: :rest}, [:test] )
:rest
iex> %{test: :rest} |> Nested.get([:test])
:rest
iex> Nested.get(%{}, [:a])
nil
iex> Nested.get(%{a: %{b: 1}}, [:a,:b])
1
iex> Nested.get(%{a: %{b: 1}}, [:a,:c])
nil
iex> Nested.get(%{a: %{b: 1}}, [:c], 3)
3
Functions
append(map, path, value)
Appends value to List at key path.
iex> Nested.append(%{"test" => "rest", "rest" => [1]},["rest"],2) %{"rest" => [1, 2], "test" => "rest"}
append(map, path, value, default)
Appends value to List at key path. If key not found at path, add key and append value to default List provided Similar to Python's defaultdict
iex> Nested.append(%{"test" => "rest", "rest" => [1]},["xest"],2,[]) %{"rest" => [1], "test" => "rest", "xest" => [2]}
iex> Nested.append(%{"test" => "rest", "rest" => [1]},["rest"],2,[]) %{"rest" => [1, 2], "test" => "rest"}
delete(map, list)
fetch(map, path)
fetch!(map, path)
get(map, list)
Examples
iex> Nested.get(%{test: :rest}, [:test] )
:rest
iex> %{test: :rest} |> Nested.get([:test])
:rest
iex> Nested.get(%{}, [:a])
nil
iex> Nested.get(%{a: %{b: 1}}, [:a,:b])
1
iex> Nested.get(%{a: %{b: 1}}, [:a,:c])
nil
iex> Nested.get(%{a: %{b: 1}}, [:c], 3)
3