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 USubjectStatusViewSubjectRepoRef() when repoRef != null:
return repoRef(_that.data);case USubjectStatusViewSubjectRepoStrongRef() when repoStrongRef != null:
return repoStrongRef(_that.data);case USubjectStatusViewSubjectMessageRef() when messageRef != null:
return messageRef(_that.data);case USubjectStatusViewSubjectConvoRef() when convoRef != null:
return convoRef(_that.data);case USubjectStatusViewSubjectUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}