when<R> method

R when<R>({
  1. required R idle(),
  2. required R uploading(
    1. double progress
    ),
  3. required R processing(),
  4. required R success(
    1. T data
    ),
  5. required R failed(
    1. FailureResponse<E> error
    ),
  6. required R networkError(),
})

Implementation

R when<R>({
  required R Function() idle,
  required R Function(double progress) uploading,
  required R Function() processing,
  required R Function(T data) success,
  required R Function(FailureResponse<E> error) failed,
  required R Function() networkError,
}) =>
    switch (this) {
      UploadIdleState<T, E>()                       => idle(),
      UploadingState<T, E>(progress: final p)       => uploading(p),
      UploadProcessingState<T, E>()                 => processing(),
      UploadSuccessState<T, E>(data: final d)       => success(d),
      UploadFailedState<T, E>(error: final e)       => failed(e),
      UploadNetworkErrorState<T, E>()               => networkError(),
    };