orElse<F> abstract method

Result<T, F> orElse<F>(
  1. Result<T, F> errMap(
    1. E error
    )
)

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);