use method

void use({
  1. void whenSuccess(
    1. Success<T> success
    )?,
  2. void whenFailure(
    1. Failure<T> failure
    )?,
  3. void whenCancelled(
    1. Cancelled<T> cancelled
    )?,
  4. void whenElse(
    1. Result<T> result
    )?,
})

Implementation

void use({
  void Function(Success<T> success)? whenSuccess,
  void Function(Failure<T> failure)? whenFailure,
  void Function(Cancelled<T> cancelled)? whenCancelled,
  void Function(Result<T> result)? whenElse,
}) {
  if (this is Success) {
    (whenSuccess ?? whenElse)?.call(this as Success<T>);
  } else if (this is Failure) {
    (whenFailure ?? whenElse)?.call(this as Failure<T>);
  } else {
    (whenCancelled ?? whenElse)?.call(this as Cancelled<T>);
  }
}