use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PKMerchantCapability(pub NSUInteger);
bitflags::bitflags! {
impl PKMerchantCapability: NSUInteger {
#[doc(alias = "PKMerchantCapability3DS")]
const Capability3DS = 1<<0;
#[doc(alias = "PKMerchantCapabilityEMV")]
const CapabilityEMV = 1<<1;
#[doc(alias = "PKMerchantCapabilityCredit")]
const CapabilityCredit = 1<<2;
#[doc(alias = "PKMerchantCapabilityDebit")]
const CapabilityDebit = 1<<3;
#[doc(alias = "PKMerchantCapabilityInstantFundsOut")]
const CapabilityInstantFundsOut = 1<<7;
}
}
unsafe impl Encode for PKMerchantCapability {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for PKMerchantCapability {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub type PKMerchantCategoryCode = i16;
extern "C" {
pub static PKMerchantCategoryCodeNone: PKMerchantCategoryCode;
}
#[deprecated = "Use PKContactField and -requiredShippingContactFields / -requiredBillingContactFields"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PKAddressField(pub NSUInteger);
bitflags::bitflags! {
impl PKAddressField: NSUInteger {
#[doc(alias = "PKAddressFieldNone")]
#[deprecated = "Use PKContactField and -requiredShippingContactFields / -requiredBillingContactFields"]
const None = 0;
#[doc(alias = "PKAddressFieldPostalAddress")]
#[deprecated = "Use PKContactField and -requiredShippingContactFields / -requiredBillingContactFields"]
const PostalAddress = 1<<0;
#[doc(alias = "PKAddressFieldPhone")]
#[deprecated = "Use PKContactField and -requiredShippingContactFields / -requiredBillingContactFields"]
const Phone = 1<<1;
#[doc(alias = "PKAddressFieldEmail")]
#[deprecated = "Use PKContactField and -requiredShippingContactFields / -requiredBillingContactFields"]
const Email = 1<<2;
#[doc(alias = "PKAddressFieldName")]
const Name = 1<<3;
#[doc(alias = "PKAddressFieldAll")]
#[deprecated = "Use PKContactField and -requiredShippingContactFields / -requiredBillingContactFields"]
const All = PKAddressField::PostalAddress.0|PKAddressField::Phone.0|PKAddressField::Email.0|PKAddressField::Name.0;
}
}
unsafe impl Encode for PKAddressField {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for PKAddressField {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PKShippingType(pub NSUInteger);
impl PKShippingType {
#[doc(alias = "PKShippingTypeShipping")]
pub const Shipping: Self = Self(0);
#[doc(alias = "PKShippingTypeDelivery")]
pub const Delivery: Self = Self(1);
#[doc(alias = "PKShippingTypeStorePickup")]
pub const StorePickup: Self = Self(2);
#[doc(alias = "PKShippingTypeServicePickup")]
pub const ServicePickup: Self = Self(3);
}
unsafe impl Encode for PKShippingType {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for PKShippingType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PKShippingContactEditingMode(pub NSUInteger);
impl PKShippingContactEditingMode {
#[doc(alias = "PKShippingContactEditingModeAvailable")]
pub const Available: Self = Self(1);
#[doc(alias = "PKShippingContactEditingModeStorePickup")]
pub const StorePickup: Self = Self(2);
#[doc(alias = "PKShippingContactEditingModeEnabled")]
#[deprecated]
pub const Enabled: Self = Self(PKShippingContactEditingMode::Available.0);
}
unsafe impl Encode for PKShippingContactEditingMode {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for PKShippingContactEditingMode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PKApplePayLaterAvailability(pub NSInteger);
impl PKApplePayLaterAvailability {
#[doc(alias = "PKApplePayLaterAvailable")]
pub const Available: Self = Self(0);
#[doc(alias = "PKApplePayLaterUnavailableItemIneligible")]
pub const UnavailableItemIneligible: Self = Self(1);
#[doc(alias = "PKApplePayLaterUnavailableRecurringTransaction")]
pub const UnavailableRecurringTransaction: Self = Self(2);
}
unsafe impl Encode for PKApplePayLaterAvailability {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for PKApplePayLaterAvailability {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct PKPaymentRequest;
);
extern_conformance!(
unsafe impl NSObjectProtocol for PKPaymentRequest {}
);
impl PKPaymentRequest {
extern_methods!(
#[cfg(feature = "PKConstants")]
#[unsafe(method(availableNetworks))]
#[unsafe(method_family = none)]
pub unsafe fn availableNetworks() -> Retained<NSArray<PKPaymentNetwork>>;
#[cfg(feature = "PKConstants")]
#[unsafe(method(paymentContactInvalidErrorWithContactField:localizedDescription:))]
#[unsafe(method_family = none)]
pub unsafe fn paymentContactInvalidErrorWithContactField_localizedDescription(
field: &PKContactField,
localized_description: Option<&NSString>,
) -> Retained<NSError>;
#[unsafe(method(paymentShippingAddressInvalidErrorWithKey:localizedDescription:))]
#[unsafe(method_family = none)]
pub unsafe fn paymentShippingAddressInvalidErrorWithKey_localizedDescription(
postal_address_key: &NSString,
localized_description: Option<&NSString>,
) -> Retained<NSError>;
#[unsafe(method(paymentBillingAddressInvalidErrorWithKey:localizedDescription:))]
#[unsafe(method_family = none)]
pub unsafe fn paymentBillingAddressInvalidErrorWithKey_localizedDescription(
postal_address_key: &NSString,
localized_description: Option<&NSString>,
) -> Retained<NSError>;
#[unsafe(method(paymentShippingAddressUnserviceableErrorWithLocalizedDescription:))]
#[unsafe(method_family = none)]
pub unsafe fn paymentShippingAddressUnserviceableErrorWithLocalizedDescription(
localized_description: Option<&NSString>,
) -> Retained<NSError>;
#[unsafe(method(paymentCouponCodeInvalidErrorWithLocalizedDescription:))]
#[unsafe(method_family = none)]
pub unsafe fn paymentCouponCodeInvalidErrorWithLocalizedDescription(
localized_description: Option<&NSString>,
) -> Retained<NSError>;
#[unsafe(method(paymentCouponCodeExpiredErrorWithLocalizedDescription:))]
#[unsafe(method_family = none)]
pub unsafe fn paymentCouponCodeExpiredErrorWithLocalizedDescription(
localized_description: Option<&NSString>,
) -> Retained<NSError>;
#[unsafe(method(merchantIdentifier))]
#[unsafe(method_family = none)]
pub unsafe fn merchantIdentifier(&self) -> Retained<NSString>;
#[unsafe(method(setMerchantIdentifier:))]
#[unsafe(method_family = none)]
pub unsafe fn setMerchantIdentifier(&self, merchant_identifier: &NSString);
#[unsafe(method(attributionIdentifier))]
#[unsafe(method_family = none)]
pub unsafe fn attributionIdentifier(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setAttributionIdentifier:))]
#[unsafe(method_family = none)]
pub unsafe fn setAttributionIdentifier(&self, attribution_identifier: Option<&NSString>);
#[unsafe(method(countryCode))]
#[unsafe(method_family = none)]
pub unsafe fn countryCode(&self) -> Retained<NSString>;
#[unsafe(method(setCountryCode:))]
#[unsafe(method_family = none)]
pub unsafe fn setCountryCode(&self, country_code: &NSString);
#[cfg(feature = "PKConstants")]
#[unsafe(method(supportedNetworks))]
#[unsafe(method_family = none)]
pub unsafe fn supportedNetworks(&self) -> Retained<NSArray<PKPaymentNetwork>>;
#[cfg(feature = "PKConstants")]
#[unsafe(method(setSupportedNetworks:))]
#[unsafe(method_family = none)]
pub unsafe fn setSupportedNetworks(&self, supported_networks: &NSArray<PKPaymentNetwork>);
#[unsafe(method(merchantCapabilities))]
#[unsafe(method_family = none)]
pub unsafe fn merchantCapabilities(&self) -> PKMerchantCapability;
#[unsafe(method(setMerchantCapabilities:))]
#[unsafe(method_family = none)]
pub unsafe fn setMerchantCapabilities(&self, merchant_capabilities: PKMerchantCapability);
#[unsafe(method(supportsCouponCode))]
#[unsafe(method_family = none)]
pub unsafe fn supportsCouponCode(&self) -> bool;
#[unsafe(method(setSupportsCouponCode:))]
#[unsafe(method_family = none)]
pub unsafe fn setSupportsCouponCode(&self, supports_coupon_code: bool);
#[unsafe(method(couponCode))]
#[unsafe(method_family = none)]
pub unsafe fn couponCode(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setCouponCode:))]
#[unsafe(method_family = none)]
pub unsafe fn setCouponCode(&self, coupon_code: Option<&NSString>);
#[unsafe(method(merchantCategoryCode))]
#[unsafe(method_family = none)]
pub unsafe fn merchantCategoryCode(&self) -> PKMerchantCategoryCode;
#[unsafe(method(setMerchantCategoryCode:))]
#[unsafe(method_family = none)]
pub unsafe fn setMerchantCategoryCode(
&self,
merchant_category_code: PKMerchantCategoryCode,
);
#[cfg(feature = "PKPaymentSummaryItem")]
#[unsafe(method(paymentSummaryItems))]
#[unsafe(method_family = none)]
pub unsafe fn paymentSummaryItems(&self) -> Retained<NSArray<PKPaymentSummaryItem>>;
#[cfg(feature = "PKPaymentSummaryItem")]
#[unsafe(method(setPaymentSummaryItems:))]
#[unsafe(method_family = none)]
pub unsafe fn setPaymentSummaryItems(
&self,
payment_summary_items: &NSArray<PKPaymentSummaryItem>,
);
#[unsafe(method(currencyCode))]
#[unsafe(method_family = none)]
pub unsafe fn currencyCode(&self) -> Retained<NSString>;
#[unsafe(method(setCurrencyCode:))]
#[unsafe(method_family = none)]
pub unsafe fn setCurrencyCode(&self, currency_code: &NSString);
#[cfg(feature = "PKConstants")]
#[unsafe(method(requiredBillingContactFields))]
#[unsafe(method_family = none)]
pub unsafe fn requiredBillingContactFields(&self) -> Retained<NSSet<PKContactField>>;
#[cfg(feature = "PKConstants")]
#[unsafe(method(setRequiredBillingContactFields:))]
#[unsafe(method_family = none)]
pub unsafe fn setRequiredBillingContactFields(
&self,
required_billing_contact_fields: &NSSet<PKContactField>,
);
#[deprecated]
#[unsafe(method(requiredBillingAddressFields))]
#[unsafe(method_family = none)]
pub unsafe fn requiredBillingAddressFields(&self) -> PKAddressField;
#[deprecated]
#[unsafe(method(setRequiredBillingAddressFields:))]
#[unsafe(method_family = none)]
pub unsafe fn setRequiredBillingAddressFields(
&self,
required_billing_address_fields: PKAddressField,
);
#[cfg(feature = "PKContact")]
#[unsafe(method(billingContact))]
#[unsafe(method_family = none)]
pub unsafe fn billingContact(&self) -> Option<Retained<PKContact>>;
#[cfg(feature = "PKContact")]
#[unsafe(method(setBillingContact:))]
#[unsafe(method_family = none)]
pub unsafe fn setBillingContact(&self, billing_contact: Option<&PKContact>);
#[cfg(feature = "PKConstants")]
#[unsafe(method(requiredShippingContactFields))]
#[unsafe(method_family = none)]
pub unsafe fn requiredShippingContactFields(&self) -> Retained<NSSet<PKContactField>>;
#[cfg(feature = "PKConstants")]
#[unsafe(method(setRequiredShippingContactFields:))]
#[unsafe(method_family = none)]
pub unsafe fn setRequiredShippingContactFields(
&self,
required_shipping_contact_fields: &NSSet<PKContactField>,
);
#[deprecated]
#[unsafe(method(requiredShippingAddressFields))]
#[unsafe(method_family = none)]
pub unsafe fn requiredShippingAddressFields(&self) -> PKAddressField;
#[deprecated]
#[unsafe(method(setRequiredShippingAddressFields:))]
#[unsafe(method_family = none)]
pub unsafe fn setRequiredShippingAddressFields(
&self,
required_shipping_address_fields: PKAddressField,
);
#[cfg(feature = "PKContact")]
#[unsafe(method(shippingContact))]
#[unsafe(method_family = none)]
pub unsafe fn shippingContact(&self) -> Option<Retained<PKContact>>;
#[cfg(feature = "PKContact")]
#[unsafe(method(setShippingContact:))]
#[unsafe(method_family = none)]
pub unsafe fn setShippingContact(&self, shipping_contact: Option<&PKContact>);
#[cfg(all(feature = "PKPaymentSummaryItem", feature = "PKShippingMethod"))]
#[unsafe(method(shippingMethods))]
#[unsafe(method_family = none)]
pub unsafe fn shippingMethods(&self) -> Option<Retained<NSArray<PKShippingMethod>>>;
#[cfg(all(feature = "PKPaymentSummaryItem", feature = "PKShippingMethod"))]
#[unsafe(method(setShippingMethods:))]
#[unsafe(method_family = none)]
pub unsafe fn setShippingMethods(
&self,
shipping_methods: Option<&NSArray<PKShippingMethod>>,
);
#[unsafe(method(shippingType))]
#[unsafe(method_family = none)]
pub unsafe fn shippingType(&self) -> PKShippingType;
#[unsafe(method(setShippingType:))]
#[unsafe(method_family = none)]
pub unsafe fn setShippingType(&self, shipping_type: PKShippingType);
#[unsafe(method(shippingContactEditingMode))]
#[unsafe(method_family = none)]
pub unsafe fn shippingContactEditingMode(&self) -> PKShippingContactEditingMode;
#[unsafe(method(setShippingContactEditingMode:))]
#[unsafe(method_family = none)]
pub unsafe fn setShippingContactEditingMode(
&self,
shipping_contact_editing_mode: PKShippingContactEditingMode,
);
#[unsafe(method(applicationData))]
#[unsafe(method_family = none)]
pub unsafe fn applicationData(&self) -> Option<Retained<NSData>>;
#[unsafe(method(setApplicationData:))]
#[unsafe(method_family = none)]
pub unsafe fn setApplicationData(&self, application_data: Option<&NSData>);
#[unsafe(method(supportedCountries))]
#[unsafe(method_family = none)]
pub unsafe fn supportedCountries(&self) -> Option<Retained<NSSet<NSString>>>;
#[unsafe(method(setSupportedCountries:))]
#[unsafe(method_family = none)]
pub unsafe fn setSupportedCountries(&self, supported_countries: Option<&NSSet<NSString>>);
#[cfg(feature = "PKPaymentTokenContext")]
#[unsafe(method(multiTokenContexts))]
#[unsafe(method_family = none)]
pub unsafe fn multiTokenContexts(&self) -> Retained<NSArray<PKPaymentTokenContext>>;
#[cfg(feature = "PKPaymentTokenContext")]
#[unsafe(method(setMultiTokenContexts:))]
#[unsafe(method_family = none)]
pub unsafe fn setMultiTokenContexts(
&self,
multi_token_contexts: &NSArray<PKPaymentTokenContext>,
);
#[cfg(feature = "PKRecurringPaymentRequest")]
#[unsafe(method(recurringPaymentRequest))]
#[unsafe(method_family = none)]
pub unsafe fn recurringPaymentRequest(&self)
-> Option<Retained<PKRecurringPaymentRequest>>;
#[cfg(feature = "PKRecurringPaymentRequest")]
#[unsafe(method(setRecurringPaymentRequest:))]
#[unsafe(method_family = none)]
pub unsafe fn setRecurringPaymentRequest(
&self,
recurring_payment_request: Option<&PKRecurringPaymentRequest>,
);
#[cfg(feature = "PKAutomaticReloadPaymentRequest")]
#[unsafe(method(automaticReloadPaymentRequest))]
#[unsafe(method_family = none)]
pub unsafe fn automaticReloadPaymentRequest(
&self,
) -> Option<Retained<PKAutomaticReloadPaymentRequest>>;
#[cfg(feature = "PKAutomaticReloadPaymentRequest")]
#[unsafe(method(setAutomaticReloadPaymentRequest:))]
#[unsafe(method_family = none)]
pub unsafe fn setAutomaticReloadPaymentRequest(
&self,
automatic_reload_payment_request: Option<&PKAutomaticReloadPaymentRequest>,
);
#[cfg(feature = "PKDeferredPaymentRequest")]
#[unsafe(method(deferredPaymentRequest))]
#[unsafe(method_family = none)]
pub unsafe fn deferredPaymentRequest(&self) -> Option<Retained<PKDeferredPaymentRequest>>;
#[cfg(feature = "PKDeferredPaymentRequest")]
#[unsafe(method(setDeferredPaymentRequest:))]
#[unsafe(method_family = none)]
pub unsafe fn setDeferredPaymentRequest(
&self,
deferred_payment_request: Option<&PKDeferredPaymentRequest>,
);
#[unsafe(method(applePayLaterAvailability))]
#[unsafe(method_family = none)]
pub unsafe fn applePayLaterAvailability(&self) -> PKApplePayLaterAvailability;
#[unsafe(method(setApplePayLaterAvailability:))]
#[unsafe(method_family = none)]
pub unsafe fn setApplePayLaterAvailability(
&self,
apple_pay_later_availability: PKApplePayLaterAvailability,
);
);
}
impl PKPaymentRequest {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}