maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult discarded(
    1. CallStateDiscarded value
    )?,
  2. TResult error(
    1. CallStateError value
    )?,
  3. TResult exchangingKeys(
    1. CallStateExchangingKeys value
    )?,
  4. TResult hangingUp(
    1. CallStateHangingUp value
    )?,
  5. TResult pending(
    1. CallStatePending value
    )?,
  6. TResult ready(
    1. CallStateReady value
    )?,
  7. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(CallStateDiscarded value)? discarded,
  TResult Function(CallStateError value)? error,
  TResult Function(CallStateExchangingKeys value)? exchangingKeys,
  TResult Function(CallStateHangingUp value)? hangingUp,
  TResult Function(CallStatePending value)? pending,
  TResult Function(CallStateReady value)? ready,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case CallStateDiscarded.constructor:
      if (discarded != null) {
        return discarded.call(this as CallStateDiscarded);
      }
      break;
    case CallStateError.constructor:
      if (error != null) {
        return error.call(this as CallStateError);
      }
      break;
    case CallStateExchangingKeys.constructor:
      if (exchangingKeys != null) {
        return exchangingKeys.call(this as CallStateExchangingKeys);
      }
      break;
    case CallStateHangingUp.constructor:
      if (hangingUp != null) {
        return hangingUp.call(this as CallStateHangingUp);
      }
      break;
    case CallStatePending.constructor:
      if (pending != null) {
        return pending.call(this as CallStatePending);
      }
      break;
    case CallStateReady.constructor:
      if (ready != null) {
        return ready.call(this as CallStateReady);
      }
      break;
  }
  return orElse.call();
}