when<TResult extends Object?> method
- @optionalTypeArgs
- required TResult embedRecordViewRecord(),
- required TResult embedRecordViewNotFound(),
- required TResult embedRecordViewBlocked(),
- required TResult embedRecordViewDetached(),
- required TResult generatorView(
- GeneratorView data
- required TResult listView(
- ListView data
- required TResult labelerView(
- LabelerView data
- required TResult starterPackViewBasic(
- StarterPackViewBasic data
- required TResult unknown(),
A switch
-like method, using callbacks.
As opposed to map
, this offers destructuring.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case Subclass2(:final field2):
return ...;
}
Implementation
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( EmbedRecordViewRecord data) embedRecordViewRecord,required TResult Function( EmbedRecordViewNotFound data) embedRecordViewNotFound,required TResult Function( EmbedRecordViewBlocked data) embedRecordViewBlocked,required TResult Function( EmbedRecordViewDetached data) embedRecordViewDetached,required TResult Function( GeneratorView data) generatorView,required TResult Function( ListView data) listView,required TResult Function( LabelerView data) labelerView,required TResult Function( StarterPackViewBasic data) starterPackViewBasic,required TResult Function( Map<String, dynamic> data) unknown,}) {final _that = this;
switch (_that) {
case UEmbedRecordViewRecordEmbedRecordViewRecord():
return embedRecordViewRecord(_that.data);case UEmbedRecordViewRecordEmbedRecordViewNotFound():
return embedRecordViewNotFound(_that.data);case UEmbedRecordViewRecordEmbedRecordViewBlocked():
return embedRecordViewBlocked(_that.data);case UEmbedRecordViewRecordEmbedRecordViewDetached():
return embedRecordViewDetached(_that.data);case UEmbedRecordViewRecordGeneratorView():
return generatorView(_that.data);case UEmbedRecordViewRecordListView():
return listView(_that.data);case UEmbedRecordViewRecordLabelerView():
return labelerView(_that.data);case UEmbedRecordViewRecordStarterPackViewBasic():
return starterPackViewBasic(_that.data);case UEmbedRecordViewRecordUnknown():
return unknown(_that.data);}
}