whenOrNull<R> method
R?
whenOrNull<R>({
- R init()?,
- R loading(
- ArgT? arg
- R data(
- ArgT? arg,
- T data
- R error(
- ArgT? arg,
- Object error
Implementation
R? whenOrNull<R>({
R Function()? init,
R Function(ArgT? arg)? loading,
R Function(ArgT? arg, T data)? data,
R Function(ArgT? arg, Object error)? error,
}) {
return switch (this) {
DataLoading<T>() => loading?.call(null),
DataSuccess<T>(data: final dataValue) => data?.call(null, dataValue),
DataError<T>(error: final errorValue) => error?.call(null, errorValue),
CommandInit<T, ArgT>() => init?.call(),
CommandLoading<T, ArgT>() => loading?.call(null),
CommandData<T, ArgT>(data: final dataValue) => data?.call(
null,
dataValue,
),
CommandError<T, ArgT>(error: final errorValue) => error?.call(
null,
errorValue,
),
ArgCommandInit<T, ArgT>() => init?.call(),
ArgCommandLoading<T, ArgT>(arg: final arg) => loading?.call(arg),
ArgCommandData<T, ArgT>(arg: final arg, data: final dataValue) =>
data?.call(arg, dataValue),
ArgCommandError<T, ArgT>(arg: final arg, error: final errorValue) =>
error?.call(arg, errorValue),
_ => null,
};
}