maybeWhen<R> method

R maybeWhen<R>({
  1. R data(
    1. T data
    )?,
  2. R loading(
    1. T? previousData
    )?,
  3. R error(
    1. Object error,
    2. StackTrace stackTrace
    )?,
  4. required R orElse(),
})

Pattern-matches with an orElse fallback for unhandled states.

Provide only the branches you care about; unhandled states fall through to orElse.

Implementation

R maybeWhen<R>({
  R Function(T data)? data,
  R Function(T? previousData)? loading,
  R Function(Object error, StackTrace stackTrace)? error,
  required R Function() orElse,
}) {
  return switch (this) {
    AsyncData<T>(:final value) => data != null ? data(value) : orElse(),
    AsyncLoading<T>(:final previousData) =>
      loading != null ? loading(previousData) : orElse(),
    AsyncError<T>(error: final err, stackTrace: final st) =>
      error != null ? error(err, st) : orElse(),
  };
}