maybeWhen<R> method

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

Maps this state with optional fallback for unhandled states.

Implementation

R maybeWhen<R>({
  R Function()? loading,
  R Function(T value)? data,
  R Function(Object error, StackTrace? stackTrace)? onError,
  required R Function() orElse,
}) {
  return switch (this) {
    AsyncLoading<T>() => loading?.call() ?? orElse(),
    AsyncData<T>(:final value) => data?.call(value) ?? orElse(),
    AsyncError<T>(:final error, :final stackTrace) =>
      onError?.call(error, stackTrace) ?? orElse(),
  };
}