Either
is helpers to handle :ok
, {:ok, value}
, :error
and {:error, reason}
in consistent way.
This library is copied from Reather.Either
from SeokminHong/reather-lite.
def deps do
[
{:either, "~> 0.1.1"}
]
end
Convert a value into ok
or error
tuple. The result is a tuple having
an :ok
or :error
atom for the first element, and a value for the second
element.
Make an error tuple from a value.
map
a function to an either tuple.
The given function will be applied lazily
when the either is an ok
tuple.
Transform a list of eithers to an either of a list.
If any of the eithers is error
, the result is error
.
iex> [{:ok, 1}, {:ok, 2}] |> Either.traverse()
{:ok, [1, 2]}
iex> [{:ok, 1}, {:error, "error!"}, {:ok, 2}]
...> |> Either.traverse()
{:error, "error!"}