match<R> method

R match<R>({
  1. required R asyncLoading(
    1. AsyncLoading<T> data
    ),
  2. required R asyncLoaded(
    1. AsyncLoaded<T> data
    ),
  3. required R asyncFailed(
    1. AsyncFailed<T> data
    ),
})

Implementation

R match<R>({
  required R Function(AsyncLoading<T> data) asyncLoading,
  required R Function(AsyncLoaded<T> data) asyncLoaded,
  required R Function(AsyncFailed<T> data) asyncFailed,
}) {
  final r = switch (this) {
    AsyncLoading<T>() => asyncLoading(this as AsyncLoading<T>),
    AsyncLoaded<T>() => asyncLoaded(this as AsyncLoaded<T>),
    AsyncFailed<T>() => asyncFailed(this as AsyncFailed<T>),
    AsyncState() => throw Exception("$runtimeType not match"),
  };
  return r;
}