maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult blocking(
    1. ModerationCauseBlocking data
    )?,
  2. TResult blockedBy(
    1. ModerationCauseBlockedBy data
    )?,
  3. TResult blockOther(
    1. ModerationCauseBlockOther data
    )?,
  4. TResult label(
    1. ModerationCauseLabel data
    )?,
  5. TResult muted(
    1. ModerationCauseMuted data
    )?,
  6. TResult muteWord(
    1. ModerationCauseMuteWord data
    )?,
  7. TResult hidden(
    1. ModerationCauseHidden data
    )?,
  8. 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( ModerationCauseBlocking data)?  blocking,TResult Function( ModerationCauseBlockedBy data)?  blockedBy,TResult Function( ModerationCauseBlockOther data)?  blockOther,TResult Function( ModerationCauseLabel data)?  label,TResult Function( ModerationCauseMuted data)?  muted,TResult Function( ModerationCauseMuteWord data)?  muteWord,TResult Function( ModerationCauseHidden data)?  hidden,required TResult orElse(),}) {final _that = this;
switch (_that) {
case UModerationCauseBlocking() when blocking != null:
return blocking(_that.data);case UModerationCauseBlockedBy() when blockedBy != null:
return blockedBy(_that.data);case UModerationCauseBlockOther() when blockOther != null:
return blockOther(_that.data);case UModerationCauseLabel() when label != null:
return label(_that.data);case UModerationCauseMuted() when muted != null:
return muted(_that.data);case UModerationCauseMuteWord() when muteWord != null:
return muteWord(_that.data);case UModerationCauseHidden() when hidden != null:
return hidden(_that.data);case _:
  return orElse();

}
}