Pipette.Result (pipette_elixir v0.1.3)

Result helpers for {:ok, } / {:error, } flows.

Summary

Functions

Monadic bind/and_then.

Map error value; leave ok untouched.

Map ok value; leave error untouched.

Convert nil/blank to error; pass through non-nil as {:ok, value}.

Sequence a list of results -> result of list.

Traverse enum with f returning result.

Provide a default when error.

Types

result(a)

@type result(a) :: {:ok, a} | {:error, term()}

Functions

bind(arg, f)

@spec bind(result(a), (a -> result(b))) :: result(b) when a: var

Monadic bind/and_then.

error(e)

@spec error(term()) :: result(any())

map_error(arg, f)

@spec map_error(result(a), (term() -> term())) :: result(a)

Map error value; leave ok untouched.

map_ok(arg, f)

@spec map_ok(result(a), (a -> b)) :: result(b) when a: var, b: var

Map ok value; leave error untouched.

ok(a)

@spec ok(a) :: result(a) when a: var

presence(v, err)

@spec presence(any(), term()) :: result(any())

Convert nil/blank to error; pass through non-nil as {:ok, value}.

sequence(results)

@spec sequence([result(a)]) :: result([a])

Sequence a list of results -> result of list.

traverse(enum, f)

@spec traverse(Enum.t(), (any() -> result(b))) :: result([b])

Traverse enum with f returning result.

with_default(arg, default)

@spec with_default(result(a), a) :: a when a: var

Provide a default when error.