when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>({
  1. required TResult modEventTakedown(
    1. ModEventTakedown data
    ),
  2. required TResult modEventAcknowledge(
    1. ModEventAcknowledge data
    ),
  3. required TResult modEventEscalate(
    1. ModEventEscalate data
    ),
  4. required TResult modEventComment(
    1. ModEventComment data
    ),
  5. required TResult modEventLabel(
    1. ModEventLabel data
    ),
  6. required TResult modEventReport(
    1. ModEventReport data
    ),
  7. required TResult modEventMute(
    1. ModEventMute data
    ),
  8. required TResult modEventUnmute(
    1. ModEventUnmute data
    ),
  9. required TResult modEventMuteReporter(
    1. ModEventMuteReporter data
    ),
  10. required TResult modEventUnmuteReporter(
    1. ModEventUnmuteReporter data
    ),
  11. required TResult modEventReverseTakedown(
    1. ModEventReverseTakedown data
    ),
  12. required TResult modEventResolveAppeal(
    1. ModEventResolveAppeal data
    ),
  13. required TResult modEventEmail(
    1. ModEventEmail data
    ),
  14. required TResult modEventDivert(
    1. ModEventDivert data
    ),
  15. required TResult modEventTag(
    1. ModEventTag data
    ),
  16. required TResult accountEvent(
    1. AccountEvent data
    ),
  17. required TResult identityEvent(
    1. IdentityEvent data
    ),
  18. required TResult recordEvent(
    1. RecordEvent data
    ),
  19. required TResult modEventPriorityScore(
    1. ModEventPriorityScore data
    ),
  20. required TResult ageAssuranceEvent(
    1. AgeAssuranceEvent data
    ),
  21. required TResult ageAssuranceOverrideEvent(
    1. AgeAssuranceOverrideEvent data
    ),
  22. required TResult revokeAccountCredentialsEvent(
    1. RevokeAccountCredentialsEvent data
    ),
  23. required TResult unknown(
    1. Map<String, dynamic> data
    ),
})

A switch-like method, using callbacks.

As opposed to map, this offers destructuring. It is equivalent to doing:

switch (sealedClass) {
  case Subclass(:final field):
    return ...;
  case Subclass2(:final field2):
    return ...;
}

Implementation

@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( ModEventTakedown data)  modEventTakedown,required TResult Function( ModEventAcknowledge data)  modEventAcknowledge,required TResult Function( ModEventEscalate data)  modEventEscalate,required TResult Function( ModEventComment data)  modEventComment,required TResult Function( ModEventLabel data)  modEventLabel,required TResult Function( ModEventReport data)  modEventReport,required TResult Function( ModEventMute data)  modEventMute,required TResult Function( ModEventUnmute data)  modEventUnmute,required TResult Function( ModEventMuteReporter data)  modEventMuteReporter,required TResult Function( ModEventUnmuteReporter data)  modEventUnmuteReporter,required TResult Function( ModEventReverseTakedown data)  modEventReverseTakedown,required TResult Function( ModEventResolveAppeal data)  modEventResolveAppeal,required TResult Function( ModEventEmail data)  modEventEmail,required TResult Function( ModEventDivert data)  modEventDivert,required TResult Function( ModEventTag data)  modEventTag,required TResult Function( AccountEvent data)  accountEvent,required TResult Function( IdentityEvent data)  identityEvent,required TResult Function( RecordEvent data)  recordEvent,required TResult Function( ModEventPriorityScore data)  modEventPriorityScore,required TResult Function( AgeAssuranceEvent data)  ageAssuranceEvent,required TResult Function( AgeAssuranceOverrideEvent data)  ageAssuranceOverrideEvent,required TResult Function( RevokeAccountCredentialsEvent data)  revokeAccountCredentialsEvent,required TResult Function( Map<String, dynamic> data)  unknown,}) {final _that = this;
switch (_that) {
case UModerationEmitEventEventModEventTakedown():
return modEventTakedown(_that.data);case UModerationEmitEventEventModEventAcknowledge():
return modEventAcknowledge(_that.data);case UModerationEmitEventEventModEventEscalate():
return modEventEscalate(_that.data);case UModerationEmitEventEventModEventComment():
return modEventComment(_that.data);case UModerationEmitEventEventModEventLabel():
return modEventLabel(_that.data);case UModerationEmitEventEventModEventReport():
return modEventReport(_that.data);case UModerationEmitEventEventModEventMute():
return modEventMute(_that.data);case UModerationEmitEventEventModEventUnmute():
return modEventUnmute(_that.data);case UModerationEmitEventEventModEventMuteReporter():
return modEventMuteReporter(_that.data);case UModerationEmitEventEventModEventUnmuteReporter():
return modEventUnmuteReporter(_that.data);case UModerationEmitEventEventModEventReverseTakedown():
return modEventReverseTakedown(_that.data);case UModerationEmitEventEventModEventResolveAppeal():
return modEventResolveAppeal(_that.data);case UModerationEmitEventEventModEventEmail():
return modEventEmail(_that.data);case UModerationEmitEventEventModEventDivert():
return modEventDivert(_that.data);case UModerationEmitEventEventModEventTag():
return modEventTag(_that.data);case UModerationEmitEventEventAccountEvent():
return accountEvent(_that.data);case UModerationEmitEventEventIdentityEvent():
return identityEvent(_that.data);case UModerationEmitEventEventRecordEvent():
return recordEvent(_that.data);case UModerationEmitEventEventModEventPriorityScore():
return modEventPriorityScore(_that.data);case UModerationEmitEventEventAgeAssuranceEvent():
return ageAssuranceEvent(_that.data);case UModerationEmitEventEventAgeAssuranceOverrideEvent():
return ageAssuranceOverrideEvent(_that.data);case UModerationEmitEventEventRevokeAccountCredentialsEvent():
return revokeAccountCredentialsEvent(_that.data);case UModerationEmitEventEventUnknown():
return unknown(_that.data);}
}