orElse<F> abstract method
Calls op
if the result is Err
,
otherwise returns the Ok
value of this
.
This function can be used for control flow based on result values.
Examples
Basic usage:
Result<int, int> sq(int x) => Ok(x * x);
Result<int, int> error(int x) => Err(x);
expect(Ok<int, int>(2).orElse(sq).orElse(sq), Ok<int, int>(2));
expect(Ok<int, int>(2).orElse(error).orElse(sq), Ok<int, int>(2));
expect(Errint, int>(3).orElse(sq).orElse(error), Ok<int, int>(9));
expect(Errint, int>(3).orElse(error).orElse(error), Errint, int>(3));
Implementation
Result<T, F> orElse<F>(Result<T, F> Function(E error) errMap);