maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult giftedStars(
    1. StorePaymentPurposeGiftedStars value
    )?,
  2. TResult premiumGift(
    1. StorePaymentPurposePremiumGift value
    )?,
  3. TResult premiumGiftCodes(
    1. StorePaymentPurposePremiumGiftCodes value
    )?,
  4. TResult premiumGiveaway(
    1. StorePaymentPurposePremiumGiveaway value
    )?,
  5. TResult premiumSubscription(
    1. StorePaymentPurposePremiumSubscription value
    )?,
  6. TResult starGiveaway(
    1. StorePaymentPurposeStarGiveaway value
    )?,
  7. TResult stars(
    1. StorePaymentPurposeStars value
    )?,
  8. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(StorePaymentPurposeGiftedStars value)? giftedStars,
  TResult Function(StorePaymentPurposePremiumGift value)? premiumGift,
  TResult Function(StorePaymentPurposePremiumGiftCodes value)?
  premiumGiftCodes,
  TResult Function(StorePaymentPurposePremiumGiveaway value)? premiumGiveaway,
  TResult Function(StorePaymentPurposePremiumSubscription value)?
  premiumSubscription,
  TResult Function(StorePaymentPurposeStarGiveaway value)? starGiveaway,
  TResult Function(StorePaymentPurposeStars value)? stars,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case StorePaymentPurposeGiftedStars.constructor:
      if (giftedStars != null) {
        return giftedStars.call(this as StorePaymentPurposeGiftedStars);
      }
      break;
    case StorePaymentPurposePremiumGift.constructor:
      if (premiumGift != null) {
        return premiumGift.call(this as StorePaymentPurposePremiumGift);
      }
      break;
    case StorePaymentPurposePremiumGiftCodes.constructor:
      if (premiumGiftCodes != null) {
        return premiumGiftCodes.call(
          this as StorePaymentPurposePremiumGiftCodes,
        );
      }
      break;
    case StorePaymentPurposePremiumGiveaway.constructor:
      if (premiumGiveaway != null) {
        return premiumGiveaway.call(
          this as StorePaymentPurposePremiumGiveaway,
        );
      }
      break;
    case StorePaymentPurposePremiumSubscription.constructor:
      if (premiumSubscription != null) {
        return premiumSubscription.call(
          this as StorePaymentPurposePremiumSubscription,
        );
      }
      break;
    case StorePaymentPurposeStarGiveaway.constructor:
      if (starGiveaway != null) {
        return starGiveaway.call(this as StorePaymentPurposeStarGiveaway);
      }
      break;
    case StorePaymentPurposeStars.constructor:
      if (stars != null) {
        return stars.call(this as StorePaymentPurposeStars);
      }
      break;
  }
  return orElse.call();
}