maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult threadItemPost(
    1. ThreadItemPost data
    )?,
  2. TResult threadItemNoUnauthenticated(
    1. ThreadItemNoUnauthenticated data
    )?,
  3. TResult threadItemNotFound(
    1. ThreadItemNotFound data
    )?,
  4. TResult threadItemBlocked(
    1. ThreadItemBlocked 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( ThreadItemPost data)?  threadItemPost,TResult Function( ThreadItemNoUnauthenticated data)?  threadItemNoUnauthenticated,TResult Function( ThreadItemNotFound data)?  threadItemNotFound,TResult Function( ThreadItemBlocked data)?  threadItemBlocked,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UThreadItemValueThreadItemPost() when threadItemPost != null:
return threadItemPost(_that.data);case UThreadItemValueThreadItemNoUnauthenticated() when threadItemNoUnauthenticated != null:
return threadItemNoUnauthenticated(_that.data);case UThreadItemValueThreadItemNotFound() when threadItemNotFound != null:
return threadItemNotFound(_that.data);case UThreadItemValueThreadItemBlocked() when threadItemBlocked != null:
return threadItemBlocked(_that.data);case UThreadItemValueUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}