maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult embedImages(
    1. EmbedImages data
    )?,
  2. TResult embedVideo(
    1. EmbedVideo data
    )?,
  3. TResult embedExternal(
    1. EmbedExternal data
    )?,
  4. TResult embedRecord(
    1. EmbedRecord data
    )?,
  5. TResult embedRecordWithMedia(
    1. EmbedRecordWithMedia 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( EmbedImages data)?  embedImages,TResult Function( EmbedVideo data)?  embedVideo,TResult Function( EmbedExternal data)?  embedExternal,TResult Function( EmbedRecord data)?  embedRecord,TResult Function( EmbedRecordWithMedia data)?  embedRecordWithMedia,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UFeedPostEmbedEmbedImages() when embedImages != null:
return embedImages(_that.data);case UFeedPostEmbedEmbedVideo() when embedVideo != null:
return embedVideo(_that.data);case UFeedPostEmbedEmbedExternal() when embedExternal != null:
return embedExternal(_that.data);case UFeedPostEmbedEmbedRecord() when embedRecord != null:
return embedRecord(_that.data);case UFeedPostEmbedEmbedRecordWithMedia() when embedRecordWithMedia != null:
return embedRecordWithMedia(_that.data);case UFeedPostEmbedUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}