maybeWhen<R> method

R maybeWhen<R>({
  1. R unauthenticated()?,
  2. R authenticating()?,
  3. R authenticated(
    1. T user
    )?,
  4. R error(
    1. Object error,
    2. StackTrace stackTrace
    )?,
  5. required R orElse(),
})

Pattern-matches with an orElse fallback for unhandled states.

Implementation

R maybeWhen<R>({
  R Function()? unauthenticated,
  R Function()? authenticating,
  R Function(T user)? authenticated,
  R Function(Object error, StackTrace stackTrace)? error,
  required R Function() orElse,
}) {
  return switch (this) {
    AuthUnauthenticated<T>() =>
      unauthenticated != null ? unauthenticated() : orElse(),
    AuthAuthenticating<T>() =>
      authenticating != null ? authenticating() : orElse(),
    AuthAuthenticated<T>(:final user) =>
      authenticated != null ? authenticated(user) : orElse(),
    AuthError<T>(error: final err, stackTrace: final st) =>
      error != null ? error(err, st) : orElse(),
  };
}