swiss v2.4.0 Swiss.Enum View Source
Helper functions for dealing with Enumerables.
Link to this section Summary
Functions
Finds the first element in enumerable
where its key
equals value
.
Returns default
if not found.
Finds the first element in enumerable
where its key
equals value
. Raises
if not found.
Same as Enum.group_by/3
but expects each group to have a single element, and
therefore returns only that element per key, instead of a list.
Applies cb
to all elements in enum
, ignores the return and returns enum
.
Link to this section Functions
find_by(enumerable, default \\ nil, key, value)
View Sourcefind_by(Enumerable.t(), any(), any(), any()) :: any()
Finds the first element in enumerable
where its key
equals value
.
Returns default
if not found.
Examples
iex> Swiss.Enum.find_by([%{life: 11}, %{life: 42}], :life, 42)
%{life: 42}
iex> Swiss.Enum.find_by([%{life: 11}, %{life: 42}], :wat, 42)
nil
iex> Swiss.Enum.find_by([%{life: 11}, %{life: 42}], 42, :wat, 42)
42
iex> Swiss.Enum.find_by([%Swiss.TestStruct{life: 42}], :life, 42)
%Swiss.TestStruct{life: 42}
find_by!(enumerable, key, value)
View Sourcefind_by!(Enumerable.t(), any(), any()) :: any()
Finds the first element in enumerable
where its key
equals value
. Raises
if not found.
Examples
iex> Swiss.Enum.find_by!([%{life: 11}, %{life: 42}], :life, 42)
%{life: 42}
iex> Swiss.Enum.find_by!([%{life: 11}, %{life: 42}], :wat, 42)
** (Swiss.Enum.KeyValueError) key :wat with value 42 not found in: [%{life: 11}, %{life: 42}]
Same as Enum.group_by/3
but expects each group to have a single element, and
therefore returns only that element per key, instead of a list.
Examples
iex> Swiss.Enum.group_by_single(
...> [%{k: "life", v: 42}, %{k: "death", v: 13}, %{k: "ooo", v: 0}],
...> & &1.k,
...> & &1.v
...> )
%{"life" => 42, "death" => 13, "ooo" => 0}
Applies cb
to all elements in enum
, ignores the return and returns enum
.
Examples
iex> Swiss.Enum.thru([1, 2, 3], fn a -> a + 1 end)
[1, 2, 3]