map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult inProgress(
    1. FetchProgressInProgress value
    ),
  2. required TResult completed(
    1. FetchProgressCompleted value
    ),
  3. required TResult failed(
    1. FetchProgressFailed value
    ),
  4. required TResult idle(
    1. FetchProgressIdle value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

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

Implementation

@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( FetchProgressInProgress value)  inProgress,required TResult Function( FetchProgressCompleted value)  completed,required TResult Function( FetchProgressFailed value)  failed,required TResult Function( FetchProgressIdle value)  idle,}){
final _that = this;
switch (_that) {
case FetchProgressInProgress():
return inProgress(_that);case FetchProgressCompleted():
return completed(_that);case FetchProgressFailed():
return failed(_that);case FetchProgressIdle():
return idle(_that);case _:
  throw StateError('Unexpected subclass');

}
}