maybeMap<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  1. TResult inProgress(
    1. FetchProgressInProgress value
    )?,
  2. TResult completed(
    1. FetchProgressCompleted value
    )?,
  3. TResult failed(
    1. FetchProgressFailed value
    )?,
  4. TResult idle(
    1. FetchProgressIdle 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( FetchProgressInProgress value)?  inProgress,TResult Function( FetchProgressCompleted value)?  completed,TResult Function( FetchProgressFailed value)?  failed,TResult Function( FetchProgressIdle value)?  idle,required TResult orElse(),}){
final _that = this;
switch (_that) {
case FetchProgressInProgress() when inProgress != null:
return inProgress(_that);case FetchProgressCompleted() when completed != null:
return completed(_that);case FetchProgressFailed() when failed != null:
return failed(_that);case FetchProgressIdle() when idle != null:
return idle(_that);case _:
  return orElse();

}
}