spebbe / dartz

Functional programming in Dart
MIT License
749 stars 60 forks source link

[Feature Request] Add a way to get the value #120

Open EArminjon opened 1 year ago

EArminjon commented 1 year ago

On our app we added the following extension to got the value for some scenario :

extension EitherExtension<L, R> on Either<L, R> {
  L get asLeft =>
      fold((L l) => l, (R r) => throw Exception("Either is a Right"));

  R get asRight =>
      fold((L l) => throw Exception("Either is a Left"), (R r) => r);

  R? get rightOrNull => fold((L l) => null, (R r) => r);

  L? get leftOrNull => fold((L l) => l, (R r) => null);
}

Could be interesting to implement this ?