maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult embedImagesView(
    1. EmbedImagesView data
    )?,
  2. TResult embedVideoView(
    1. EmbedVideoView data
    )?,
  3. TResult embedExternalView(
    1. EmbedExternalView data
    )?,
  4. TResult embedRecordView(
    1. EmbedRecordView data
    )?,
  5. TResult embedRecordWithMediaView(
    1. EmbedRecordWithMediaView data
    )?,
  6. TResult unknown(
    1. Map<String, dynamic> data
    )?,
  7. 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( EmbedImagesView data)?  embedImagesView,TResult Function( EmbedVideoView data)?  embedVideoView,TResult Function( EmbedExternalView data)?  embedExternalView,TResult Function( EmbedRecordView data)?  embedRecordView,TResult Function( EmbedRecordWithMediaView data)?  embedRecordWithMediaView,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UPostViewEmbedEmbedImagesView() when embedImagesView != null:
return embedImagesView(_that.data);case UPostViewEmbedEmbedVideoView() when embedVideoView != null:
return embedVideoView(_that.data);case UPostViewEmbedEmbedExternalView() when embedExternalView != null:
return embedExternalView(_that.data);case UPostViewEmbedEmbedRecordView() when embedRecordView != null:
return embedRecordView(_that.data);case UPostViewEmbedEmbedRecordWithMediaView() when embedRecordWithMediaView != null:
return embedRecordWithMediaView(_that.data);case UPostViewEmbedUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}