maybeMap<TResult extends Object?> method

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

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(CallDiscardReasonDeclined value)? declined,
  TResult Function(CallDiscardReasonDisconnected value)? disconnected,
  TResult Function(CallDiscardReasonEmpty value)? empty,
  TResult Function(CallDiscardReasonHungUp value)? hungUp,
  TResult Function(CallDiscardReasonMissed value)? missed,
  TResult Function(CallDiscardReasonUpgradeToGroupCall value)?
  upgradeToGroupCall,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case CallDiscardReasonDeclined.constructor:
      if (declined != null) {
        return declined.call(this as CallDiscardReasonDeclined);
      }
      break;
    case CallDiscardReasonDisconnected.constructor:
      if (disconnected != null) {
        return disconnected.call(this as CallDiscardReasonDisconnected);
      }
      break;
    case CallDiscardReasonEmpty.constructor:
      if (empty != null) {
        return empty.call(this as CallDiscardReasonEmpty);
      }
      break;
    case CallDiscardReasonHungUp.constructor:
      if (hungUp != null) {
        return hungUp.call(this as CallDiscardReasonHungUp);
      }
      break;
    case CallDiscardReasonMissed.constructor:
      if (missed != null) {
        return missed.call(this as CallDiscardReasonMissed);
      }
      break;
    case CallDiscardReasonUpgradeToGroupCall.constructor:
      if (upgradeToGroupCall != null) {
        return upgradeToGroupCall.call(
          this as CallDiscardReasonUpgradeToGroupCall,
        );
      }
      break;
  }
  return orElse.call();
}