when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>({
  1. required TResult eventConvoFirstMessage(
    1. EventConvoFirstMessage data
    ),
  2. required TResult eventGroupChatCreated(
    1. EventGroupChatCreated data
    ),
  3. required TResult eventGroupChatMemberAdded(
    1. EventGroupChatMemberAdded data
    ),
  4. required TResult eventGroupChatMemberJoined(
    1. EventGroupChatMemberJoined data
    ),
  5. required TResult eventGroupChatJoinRequest(
    1. EventGroupChatJoinRequest data
    ),
  6. required TResult eventGroupChatJoinRequestApproved(
    1. EventGroupChatJoinRequestApproved data
    ),
  7. required TResult eventGroupChatJoinRequestRejected(
    1. EventGroupChatJoinRequestRejected data
    ),
  8. required TResult eventChatAccepted(
    1. EventChatAccepted data
    ),
  9. required TResult eventGroupChatMemberLeft(
    1. EventGroupChatMemberLeft data
    ),
  10. required TResult eventGroupChatUpdated(
    1. EventGroupChatUpdated data
    ),
  11. 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( EventConvoFirstMessage data)  eventConvoFirstMessage,required TResult Function( EventGroupChatCreated data)  eventGroupChatCreated,required TResult Function( EventGroupChatMemberAdded data)  eventGroupChatMemberAdded,required TResult Function( EventGroupChatMemberJoined data)  eventGroupChatMemberJoined,required TResult Function( EventGroupChatJoinRequest data)  eventGroupChatJoinRequest,required TResult Function( EventGroupChatJoinRequestApproved data)  eventGroupChatJoinRequestApproved,required TResult Function( EventGroupChatJoinRequestRejected data)  eventGroupChatJoinRequestRejected,required TResult Function( EventChatAccepted data)  eventChatAccepted,required TResult Function( EventGroupChatMemberLeft data)  eventGroupChatMemberLeft,required TResult Function( EventGroupChatUpdated data)  eventGroupChatUpdated,required TResult Function( Map<String, dynamic> data)  unknown,}) {final _that = this;
switch (_that) {
case UModerationSubscribeModEventsMessageEventConvoFirstMessage():
return eventConvoFirstMessage(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatCreated():
return eventGroupChatCreated(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatMemberAdded():
return eventGroupChatMemberAdded(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatMemberJoined():
return eventGroupChatMemberJoined(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatJoinRequest():
return eventGroupChatJoinRequest(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatJoinRequestApproved():
return eventGroupChatJoinRequestApproved(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatJoinRequestRejected():
return eventGroupChatJoinRequestRejected(_that.data);case UModerationSubscribeModEventsMessageEventChatAccepted():
return eventChatAccepted(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatMemberLeft():
return eventGroupChatMemberLeft(_that.data);case UModerationSubscribeModEventsMessageEventGroupChatUpdated():
return eventGroupChatUpdated(_that.data);case UModerationSubscribeModEventsMessageUnknown():
return unknown(_that.data);}
}