maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult giftCode(
    1. ChatBoostSourceGiftCode value
    )?,
  2. TResult giveaway(
    1. ChatBoostSourceGiveaway value
    )?,
  3. TResult premium(
    1. ChatBoostSourcePremium value
    )?,
  4. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(ChatBoostSourceGiftCode value)? giftCode,
  TResult Function(ChatBoostSourceGiveaway value)? giveaway,
  TResult Function(ChatBoostSourcePremium value)? premium,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case ChatBoostSourceGiftCode.constructor:
      if (giftCode != null) {
        return giftCode.call(this as ChatBoostSourceGiftCode);
      }
      break;
    case ChatBoostSourceGiveaway.constructor:
      if (giveaway != null) {
        return giveaway.call(this as ChatBoostSourceGiveaway);
      }
      break;
    case ChatBoostSourcePremium.constructor:
      if (premium != null) {
        return premium.call(this as ChatBoostSourcePremium);
      }
      break;
  }
  return orElse.call();
}