Trait Respub
Source:trait(pub) Res
.is-ok ( (Result val err) → Bool )
.is-err ( (Result val err) → Bool )
.map ( [a → b ] (Result a err) → (Result b err) )
.map-err ( [e1 → e2 ] (Result val e1) → (Result val e2) )
.and-then ( [a → (Result b err) ] (Result a err) → (Result b err) )
.or-else ( [e1 → (Result val e2) ] (Result val e1) → (Result val e2) )
.unwrap ( (Result val err) → val )
.unwrap-err ( (Result val err) → err )
.expect ( (Result a e) Str → a )
.expect-err ( (Result a e) Str → e )
.unwrap-or ( val (Result val err) → val )
.unwrap-or-else ( [err → val ] (Result val err) → val )
.into-ok ( (Result a Never) → a )
.into-err ( (Result Never e) → e )
.ok ( (Result val err) → (Option val) )
.err ( (Result val err) → (Option err) )
.flatten ( (Result (Result val err) err) → (Result val err) )
.map-or ( (Result a e) b [a → b ] → b )
.map-or-else ( (Result a e) [e → b ] [a → b ] → b )
.and ( (Result a e) (Result b e) → (Result b e) )
.or ( (Result a e) (Result a f) → (Result a f) )
.is-ok-and ( (Result a e) [a → Bool ] → Bool )
.is-err-and ( (Result a e) [e → Bool ] → Bool )
.transpose ( (Result (Option a) e) → (Option (Result a e)) )
.inspect ( (Result a e) [a → ] → (Result a e) )
.inspect-err ( (Result a e) [e → ] → (Result a e) )
.contains ( (Result a e) a → Bool )
.contains-err ( (Result a e) e → Bool )
Description
Combinator surface on (Result val err). .map / .map-err transform one side while preserving the other; .and-then / .or-else chain into further fallible computations. .ok / .err project either side to an Option.
Required Methods
.map ( [a → b ] (Result a err) → (Result b err) )
.map ( [a → b ] (Result a err) → (Result b err) )
Apply a function to the Ok value; the Err branch is unchanged.
.map-err ( [e1 → e2 ] (Result val e1) → (Result val e2) )
.map-err ( [e1 → e2 ] (Result val e1) → (Result val e2) )
Apply a function to the Err value; the Ok branch is unchanged.
.and-then ( [a → (Result b err) ] (Result a err) → (Result b err) )
.and-then ( [a → (Result b err) ] (Result a err) → (Result b err) )
Chain into another Result-producing computation on the Ok side (monadic bind).
.or-else ( [e1 → (Result val e2) ] (Result val e1) → (Result val e2) )
.or-else ( [e1 → (Result val e2) ] (Result val e1) → (Result val e2) )
Attempt to recover from Err by invoking a fallback; Ok passes through.
.expect-err ( (Result a e) Str → e )
.expect-err ( (Result a e) Str → e )
Return the Err value, panicking with the supplied message if Ok.
.unwrap-or-else ( [err → val ] (Result val err) → val )
.unwrap-or-else ( [err → val ] (Result val err) → val )
Return the Ok value, or invoke a function on the error to produce one if Err.
.into-ok ( (Result a Never) → a )
.into-ok ( (Result a Never) → a )
Extract the Ok value from a (Result a Never) — the Err arm is uninhabited.
.into-err ( (Result Never e) → e )
.into-err ( (Result Never e) → e )
Extract the Err value from a (Result Never e) — the Ok arm is uninhabited.
.flatten ( (Result (Result val err) err) → (Result val err) )
.flatten ( (Result (Result val err) err) → (Result val err) )
Collapse (Result (Result val err) err) into (Result val err) by one layer.
.inspect ( (Result a e) [a → ] → (Result a e) )
.inspect ( (Result a e) [a → ] → (Result a e) )
Call a quotation on the Ok value for side effects, returning the Result unchanged.
.inspect-err ( (Result a e) [e → ] → (Result a e) )
.inspect-err ( (Result a e) [e → ] → (Result a e) )
Call a quotation on the Err value for side effects, returning the Result unchanged.