when<R> method

R when<R>({
  1. required R loading(),
  2. required R onData(
    1. T data
    ),
  3. required R onError(
    1. FKernalError error
    ),
  4. R initial()?,
})

Maps the state to a value using the provided functions.

Implementation

R when<R>({
  required R Function() loading,
  required R Function(T data) onData,
  required R Function(FKernalError error) onError,
  R Function()? initial,
}) {
  return switch (this) {
    ResourceInitial() => initial?.call() ?? loading(),
    ResourceLoading() => loading(),
    ResourceData(data: final d) => onData(d),
    ResourceError(error: final e) => onError(e),
  };
}