Packages

Nil protection for nested maps and structs

Current section

Files

Jump to
maybe lib maybe.ex
Raw

lib/maybe.ex

defmodule Maybe do
def ok(result, f) do
case result do
{:ok, value} ->
case ret = f.(value) do
{:ok, _} -> ret
{:error, _} -> ret
_ -> {:ok, ret}
end
_ -> result
end
end
def error(result, f) do
case result do
{:error, value} ->
case ret = f.(value) do
{:ok, _} -> ret
{:error, _} -> ret
_ -> {:error, ret}
end
_ -> result
end
end
end