when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>({
  1. required TResult logBeginConvo(
    1. LogBeginConvo data
    ),
  2. required TResult logAcceptConvo(
    1. LogAcceptConvo data
    ),
  3. required TResult logLeaveConvo(
    1. LogLeaveConvo data
    ),
  4. required TResult logMuteConvo(
    1. LogMuteConvo data
    ),
  5. required TResult logUnmuteConvo(
    1. LogUnmuteConvo data
    ),
  6. required TResult logCreateMessage(
    1. LogCreateMessage data
    ),
  7. required TResult logDeleteMessage(
    1. LogDeleteMessage data
    ),
  8. required TResult logReadMessage(
    1. LogReadMessage data
    ),
  9. required TResult logAddReaction(
    1. LogAddReaction data
    ),
  10. required TResult logRemoveReaction(
    1. LogRemoveReaction 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( LogBeginConvo data)  logBeginConvo,required TResult Function( LogAcceptConvo data)  logAcceptConvo,required TResult Function( LogLeaveConvo data)  logLeaveConvo,required TResult Function( LogMuteConvo data)  logMuteConvo,required TResult Function( LogUnmuteConvo data)  logUnmuteConvo,required TResult Function( LogCreateMessage data)  logCreateMessage,required TResult Function( LogDeleteMessage data)  logDeleteMessage,required TResult Function( LogReadMessage data)  logReadMessage,required TResult Function( LogAddReaction data)  logAddReaction,required TResult Function( LogRemoveReaction data)  logRemoveReaction,required TResult Function( Map<String, dynamic> data)  unknown,}) {final _that = this;
switch (_that) {
case UConvoGetLogLogsLogBeginConvo():
return logBeginConvo(_that.data);case UConvoGetLogLogsLogAcceptConvo():
return logAcceptConvo(_that.data);case UConvoGetLogLogsLogLeaveConvo():
return logLeaveConvo(_that.data);case UConvoGetLogLogsLogMuteConvo():
return logMuteConvo(_that.data);case UConvoGetLogLogsLogUnmuteConvo():
return logUnmuteConvo(_that.data);case UConvoGetLogLogsLogCreateMessage():
return logCreateMessage(_that.data);case UConvoGetLogLogsLogDeleteMessage():
return logDeleteMessage(_that.data);case UConvoGetLogLogsLogReadMessage():
return logReadMessage(_that.data);case UConvoGetLogLogsLogAddReaction():
return logAddReaction(_that.data);case UConvoGetLogLogsLogRemoveReaction():
return logRemoveReaction(_that.data);case UConvoGetLogLogsUnknown():
return unknown(_that.data);}
}