map<R> method
R
map<R>({
- required R loading(),
- required R error(
- Object error,
- StackTrace? stackTrace
- required R data(
- T data
Pattern matching method similar to Riverpod's AsyncValue.map
Implementation
R map<R>({
required R Function() loading,
required R Function(Object error, StackTrace? stackTrace) error,
required R Function(T data) data,
}) {
if (this is AsyncLoading<T>) {
return loading();
} else if (this is AsyncError<T>) {
final errorState = this as AsyncError<T>;
return error(errorState.error, errorState.stackTrace);
} else if (this is AsyncData<T>) {
final dataState = this as AsyncData<T>;
return data(dataState.value);
}
throw StateError('Unhandled AsyncValue state');
}