map<R> method

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

Pattern-matching over the form state.

Provides callbacks for each state: idle, data, error, and loading. All callbacks are required.

Implementation

R map<R>({
  required R Function(AsyncFormIdle<Request, Response> idle) idle,
  required R Function(AsyncFormData<Request, Response> data) data,
  required R Function(AsyncFormError<Request, Response> error) error,
  required R Function(AsyncFormLoading<Request, Response> loading) loading,
}) {
  if (this is AsyncFormIdle<Request, Response>) {
    return idle(this as AsyncFormIdle<Request, Response>);
  }
  if (this is AsyncFormData<Request, Response>) {
    return data(this as AsyncFormData<Request, Response>);
  }
  if (this is AsyncFormError<Request, Response>) {
    return error(this as AsyncFormError<Request, Response>);
  }
  return loading(this as AsyncFormLoading<Request, Response>);
}