maybeMap<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  1. TResult idle(
    1. GenericDataStateIdle value
    )?,
  2. TResult loading(
    1. GenericDataStateLoading value
    )?,
  3. TResult error(
    1. GenericDataStateError value
    )?,
  4. TResult success(
    1. GenericDataStateSuccess value
    )?,
  5. required TResult orElse(),
})

A variant of map that fallback to returning orElse.

It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case _:
    return orElse();
}

Implementation

@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( GenericDataStateIdle value)?  idle,TResult Function( GenericDataStateLoading value)?  loading,TResult Function( GenericDataStateError value)?  error,TResult Function( GenericDataStateSuccess value)?  success,required TResult orElse(),}){
final _that = this;
switch (_that) {
case GenericDataStateIdle() when idle != null:
return idle(_that);case GenericDataStateLoading() when loading != null:
return loading(_that);case GenericDataStateError() when error != null:
return error(_that);case GenericDataStateSuccess() when success != null:
return success(_that);case _:
  return orElse();

}
}