map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult inProgress(
    1. MeasurementProgressInProgress value
    ),
  2. required TResult completed(
    1. MeasurementProgressCompleted value
    ),
  3. required TResult failed(
    1. MeasurementProgressFailed value
    ),
  4. required TResult idle(
    1. MeasurementProgressIdle 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( MeasurementProgressInProgress value)  inProgress,required TResult Function( MeasurementProgressCompleted value)  completed,required TResult Function( MeasurementProgressFailed value)  failed,required TResult Function( MeasurementProgressIdle value)  idle,}){
final _that = this;
switch (_that) {
case MeasurementProgressInProgress():
return inProgress(_that);case MeasurementProgressCompleted():
return completed(_that);case MeasurementProgressFailed():
return failed(_that);case MeasurementProgressIdle():
return idle(_that);case _:
  throw StateError('Unexpected subclass');

}
}