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 UModEventViewSubjectRepoRef() when repoRef != null:
return repoRef(_that.data);case UModEventViewSubjectRepoStrongRef() when repoStrongRef != null:
return repoStrongRef(_that.data);case UModEventViewSubjectMessageRef() when messageRef != null:
return messageRef(_that.data);case UModEventViewSubjectConvoRef() when convoRef != null:
return convoRef(_that.data);case UModEventViewSubjectUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}