maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult embedExternalViewArticle(
    1. EmbedExternalViewArticle data
    )?,
  2. TResult embedExternalViewArticlePublication(
    1. EmbedExternalViewArticlePublication data
    )?,
  3. TResult embedExternalViewGallery(
    1. EmbedExternalViewGallery data
    )?,
  4. TResult embedExternalViewLivestream(
    1. EmbedExternalViewLivestream data
    )?,
  5. TResult unknown(
    1. Map<String, dynamic> data
    )?,
  6. 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( EmbedExternalViewArticle data)?  embedExternalViewArticle,TResult Function( EmbedExternalViewArticlePublication data)?  embedExternalViewArticlePublication,TResult Function( EmbedExternalViewGallery data)?  embedExternalViewGallery,TResult Function( EmbedExternalViewLivestream data)?  embedExternalViewLivestream,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UEmbedGetEmbedExternalViewDataEmbedExternalViewArticle() when embedExternalViewArticle != null:
return embedExternalViewArticle(_that.data);case UEmbedGetEmbedExternalViewDataEmbedExternalViewArticlePublication() when embedExternalViewArticlePublication != null:
return embedExternalViewArticlePublication(_that.data);case UEmbedGetEmbedExternalViewDataEmbedExternalViewGallery() when embedExternalViewGallery != null:
return embedExternalViewGallery(_that.data);case UEmbedGetEmbedExternalViewDataEmbedExternalViewLivestream() when embedExternalViewLivestream != null:
return embedExternalViewLivestream(_that.data);case UEmbedGetEmbedExternalViewDataUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}