mapOrElse<U> method

U mapOrElse<U>(
  1. U defaultt(
    1. E err
    ),
  2. U op(
    1. T val
    )
)

Maps a Result<T, E> to U by applying a fallback function to a contained error value, or a default function to a contained ok value.

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

Example

Basic Usage:

import 'package:dartsult/dartsult.dart';

main() {
  int k = 21;

  Result<dynamic, String> x = Result.ok<dynamic, String>("foo");
  int val = x.mapOrElse<int>((v) => k * 2, (v) => v.length);
  assert(val == 3);

  Result<String, dynamic> y = Result.error<String, dynamic>("bar");
  int val1 = y.mapOrElse<int>((v) => k * 2, (v) => v.length);
  assert(val1 == 42);
}

Implementation

U mapOrElse<U>(U Function(E err) defaultt, U Function(T val) op) {
  if (_ok.val != null) {
    return op(_ok.val!);
  }
  return defaultt(_error.val!);
}