when<U> method

  1. @override
U when<U>({
  1. required U ok(
    1. T value
    ),
  2. required U err(
    1. E error
    ),
})
override

Maps a Result<T, E> to U

This function can be used to unpack a successful result while handliing an error.

Examples

Basic usage:

Result<int, int> x = Ok(9);
expect(
  x.when(
    err: (error) => 'Failure: $error',
    ok: (value) => 'Success: $value',
  ),
  'Success: 9',
);

Result<int, int> x = Err(81);
expect(
  x.when(
    err: (error) => 'Failure: $error',
    ok: (value) => 'Success: $value',
  ),
  'Failed: 81',
);

Implementation

@override
U when<U>({
  required U Function(T value) ok,
  required U Function(E error) err,
}) {
  return mapOrElse(errMap: err, okMap: ok);
}