View Source OrderedMap (OrderedMap v0.0.8)
Summary
Functions
Deletes the entry in ordered_map
having key key
.
Fetches the value for a specific key
in the given
ordered_map
.
Gets the value for a specific key
.
Gets the value from key
and updates it, all in one pass.
Returns whether a given key
exists in the given
ordered_map
.
Returns all keys from ordered_map
.
Returns a new ordered map.
Returns and removes the value associated with key
in
ordered_map
.
Puts the given value
under key
.
Puts the given value
under key
unless the entry key
already exists.
Puts the given value
under key
. If key
exists, a
RuntimeError
is raised.
Returns all values from ordered_map
.
Types
@type key() :: any()
@type t() :: %OrderedMap{keys: [key()], map: map(), size: non_neg_integer()}
Functions
Deletes the entry in ordered_map
having key key
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.delete(ordered_map, "key1")
%OrderedMap{
keys: ["key2"],
map: %{"key2" => 2},
size: 1
}
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key1"],
...> map: %{"key1" => 1},
...> size: 1
...> }
iex> OrderedMap.delete(ordered_map, "key2")
%OrderedMap{
keys: ["key1"],
map: %{"key1" => 1},
size: 1
}
iex> OrderedMap.delete(OrderedMap.new(), "key")
%OrderedMap{keys: [], map: %{}, size: 0}
Fetches the value for a specific key
in the given
ordered_map
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.fetch(ordered_map, "key1")
{:ok, 1}
iex> ordered_map = OrderedMap.new()
iex> OrderedMap.fetch(ordered_map, "key")
:error
Gets the value for a specific key
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.get(ordered_map, "key2")
2
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key1"],
...> map: %{"key1" => 1},
...> size: 1,
...> }
iex> OrderedMap.get(ordered_map, "key2")
nil
iex> OrderedMap.get(OrderedMap.new(), "key")
nil
iex> OrderedMap.get(OrderedMap.new(), "key", :default)
:default
Gets the value from key
and updates it, all in one pass.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> fun = fn current -> {current, 3} end
iex> OrderedMap.get_and_update(ordered_map, "key1",fun)
{ 1,
%OrderedMap{
keys: ["key2", "key1"],
map: %{"key1" => 3, "key2" => 2},
size: 2,
}
}
Returns whether a given key
exists in the given
ordered_map
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.has_key?(ordered_map, "key1")
true
iex> OrderedMap.has_key?(OrderedMap.new(), "key")
false
Returns all keys from ordered_map
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.keys ordered_map
["key1", "key2"]
iex> OrderedMap.keys OrderedMap.new()
[]
@spec new() :: %OrderedMap{keys: [], map: %{}, size: 0}
Returns a new ordered map.
Examples
iex> OrderedMap.new()
%OrderedMap{keys: [], map: %{}, size: 0}
Returns and removes the value associated with key
in
ordered_map
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.pop(ordered_map, "key1")
{ 1,
%OrderedMap{
keys: ["key2"],
map: %{"key2" => 2},
size: 1,
}
}
Puts the given value
under key
.
Examples
iex> ordered_map = OrderedMap.new()
iex> ordered_map =
...> OrderedMap.put(ordered_map, "key1", 1)
%OrderedMap{
keys: ["key1"],
map: %{"key1" => 1},
size: 1,
}
iex> OrderedMap.put(ordered_map, "key2", 2)
%OrderedMap{
keys: ["key2", "key1"],
map: %{"key1" => 1, "key2" => 2},
size: 2,
}
iex> OrderedMap.put(ordered_map, "key2", 3)
%OrderedMap{
keys: ["key2", "key1"],
map: %{"key1" => 1, "key2" => 3},
size: 2,
}
Puts the given value
under key
unless the entry key
already exists.
Examples
iex> ordered_map = OrderedMap.new()
iex> ordered_map =
...> OrderedMap.put_new(ordered_map, "key1", 1)
%OrderedMap{
keys: ["key1"],
map: %{"key1" => 1},
size: 1,
}
iex> OrderedMap.put_new(ordered_map, "key1", 2)
%OrderedMap{
keys: ["key1"],
map: %{"key1" => 1},
size: 1,
}
Puts the given value
under key
. If key
exists, a
RuntimeError
is raised.
Examples
iex> ordered_map = OrderedMap.new()
iex> ordered_map =
...> OrderedMap.put_new!(ordered_map, "key1", 1)
%OrderedMap{
keys: ["key1"],
map: %{"key1" => 1},
size: 1,
}
iex> OrderedMap.put_new!(ordered_map, "key1", 2)
** (RuntimeError) key "key1" already exists
Returns all values from ordered_map
.
Examples
iex> ordered_map =
...> %OrderedMap{
...> keys: ["key2", "key1"],
...> map: %{"key1" => 1, "key2" => 2},
...> size: 2,
...> }
iex> OrderedMap.values ordered_map
[1, 2]
iex> OrderedMap.values OrderedMap.new()
[]