maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult embedRecordViewRecord(
    1. EmbedRecordViewRecord data
    )?,
  2. TResult embedRecordViewNotFound(
    1. EmbedRecordViewNotFound data
    )?,
  3. TResult embedRecordViewBlocked(
    1. EmbedRecordViewBlocked data
    )?,
  4. TResult embedRecordViewDetached(
    1. EmbedRecordViewDetached data
    )?,
  5. TResult generatorView(
    1. GeneratorView data
    )?,
  6. TResult listView(
    1. ListView data
    )?,
  7. TResult labelerView(
    1. LabelerView data
    )?,
  8. TResult starterPackViewBasic(
    1. StarterPackViewBasic data
    )?,
  9. TResult unknown(
    1. Map<String, dynamic> data
    )?,
  10. required TResult orElse(),
})

A variant of when that fallback to an orElse callback.

It is equivalent to doing:

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

Implementation

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function( EmbedRecordViewRecord data)?  embedRecordViewRecord,TResult Function( EmbedRecordViewNotFound data)?  embedRecordViewNotFound,TResult Function( EmbedRecordViewBlocked data)?  embedRecordViewBlocked,TResult Function( EmbedRecordViewDetached data)?  embedRecordViewDetached,TResult Function( GeneratorView data)?  generatorView,TResult Function( ListView data)?  listView,TResult Function( LabelerView data)?  labelerView,TResult Function( StarterPackViewBasic data)?  starterPackViewBasic,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UEmbedRecordViewRecordEmbedRecordViewRecord() when embedRecordViewRecord != null:
return embedRecordViewRecord(_that.data);case UEmbedRecordViewRecordEmbedRecordViewNotFound() when embedRecordViewNotFound != null:
return embedRecordViewNotFound(_that.data);case UEmbedRecordViewRecordEmbedRecordViewBlocked() when embedRecordViewBlocked != null:
return embedRecordViewBlocked(_that.data);case UEmbedRecordViewRecordEmbedRecordViewDetached() when embedRecordViewDetached != null:
return embedRecordViewDetached(_that.data);case UEmbedRecordViewRecordGeneratorView() when generatorView != null:
return generatorView(_that.data);case UEmbedRecordViewRecordListView() when listView != null:
return listView(_that.data);case UEmbedRecordViewRecordLabelerView() when labelerView != null:
return labelerView(_that.data);case UEmbedRecordViewRecordStarterPackViewBasic() when starterPackViewBasic != null:
return starterPackViewBasic(_that.data);case UEmbedRecordViewRecordUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}