swiss v2.3.0 Swiss.Enum View Source

Link to this section Summary

Functions

Finds the first element in enumerable where its key equals value.

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

Link to this function

find_by(enumerable, default \\ nil, key, value)

View Source

Finds the first element in enumerable where its key equals value.

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}
Link to this function

group_by_single(enum, key_fn, value_fn \\ fn x -> x end)

View Source

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]