map<TResult extends Object?> method

TResult map<TResult extends Object?>({
  1. required TResult declined(
    1. CallDiscardReasonDeclined value
    ),
  2. required TResult disconnected(
    1. CallDiscardReasonDisconnected value
    ),
  3. required TResult empty(
    1. CallDiscardReasonEmpty value
    ),
  4. required TResult hungUp(
    1. CallDiscardReasonHungUp value
    ),
  5. required TResult missed(
    1. CallDiscardReasonMissed value
    ),
  6. required TResult upgradeToGroupCall(
    1. CallDiscardReasonUpgradeToGroupCall value
    ),
})

Implementation

TResult map<TResult extends Object?>({
  required TResult Function(CallDiscardReasonDeclined value) declined,
  required TResult Function(CallDiscardReasonDisconnected value) disconnected,
  required TResult Function(CallDiscardReasonEmpty value) empty,
  required TResult Function(CallDiscardReasonHungUp value) hungUp,
  required TResult Function(CallDiscardReasonMissed value) missed,
  required TResult Function(CallDiscardReasonUpgradeToGroupCall value)
  upgradeToGroupCall,
}) {
  switch (getConstructor()) {
    case CallDiscardReasonDeclined.constructor:
      return declined.call(this as CallDiscardReasonDeclined);
    case CallDiscardReasonDisconnected.constructor:
      return disconnected.call(this as CallDiscardReasonDisconnected);
    case CallDiscardReasonEmpty.constructor:
      return empty.call(this as CallDiscardReasonEmpty);
    case CallDiscardReasonHungUp.constructor:
      return hungUp.call(this as CallDiscardReasonHungUp);
    case CallDiscardReasonMissed.constructor:
      return missed.call(this as CallDiscardReasonMissed);
    case CallDiscardReasonUpgradeToGroupCall.constructor:
      return upgradeToGroupCall.call(
        this as CallDiscardReasonUpgradeToGroupCall,
      );
  }
  throw StateError('not handled type Generator');
}