maybeMap<R> method

R maybeMap<R>({
  1. R idle(
    1. AsyncFormIdle<Request, Response> idle
    )?,
  2. R data(
    1. AsyncFormData<Request, Response> data
    )?,
  3. R error(
    1. AsyncFormError<Request, Response> error
    )?,
  4. R loading(
    1. AsyncFormLoading<Request, Response> loading
    )?,
  5. required R orElse,
})

Optional pattern-matching over the form state.

Similar to map but with optional callbacks and a required orElse callback.

Implementation

R maybeMap<R>({
  R Function(AsyncFormIdle<Request, Response> idle)? idle,
  R Function(AsyncFormData<Request, Response> data)? data,
  R Function(AsyncFormError<Request, Response> error)? error,
  R Function(AsyncFormLoading<Request, Response> loading)? loading,
  required R orElse,
}) {
  if (this is AsyncFormIdle<Request, Response> && idle != null) {
    return idle(this as AsyncFormIdle<Request, Response>);
  }
  if (this is AsyncFormData<Request, Response> && data != null) {
    return data(this as AsyncFormData<Request, Response>);
  }
  if (this is AsyncFormError<Request, Response> && error != null) {
    return error(this as AsyncFormError<Request, Response>);
  }
  if (this is AsyncFormLoading<Request, Response> && loading != null) {
    return loading(this as AsyncFormLoading<Request, Response>);
  }
  return orElse;
}