maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult repoRef(
    1. RepoRef data
    )?,
  2. TResult repoStrongRef(
    1. RepoStrongRef data
    )?,
  3. TResult messageRef(
    1. MessageRef data
    )?,
  4. TResult convoRef(
    1. ConvoRef 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( RepoRef data)?  repoRef,TResult Function( RepoStrongRef data)?  repoStrongRef,TResult Function( MessageRef data)?  messageRef,TResult Function( ConvoRef data)?  convoRef,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UReportViewSubjectRepoRef() when repoRef != null:
return repoRef(_that.data);case UReportViewSubjectRepoStrongRef() when repoStrongRef != null:
return repoStrongRef(_that.data);case UReportViewSubjectMessageRef() when messageRef != null:
return messageRef(_that.data);case UReportViewSubjectConvoRef() when convoRef != null:
return convoRef(_that.data);case UReportViewSubjectUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}