use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct SKPayment;
unsafe impl ClassType for SKPayment {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCopying for SKPayment {}
unsafe impl NSMutableCopying for SKPayment {}
unsafe impl NSObjectProtocol for SKPayment {}
extern_methods!(
unsafe impl SKPayment {
#[cfg(feature = "SKProduct")]
#[method_id(@__retain_semantics Other paymentWithProduct:)]
pub unsafe fn paymentWithProduct(product: &SKProduct) -> Retained<Self>;
#[deprecated]
#[method_id(@__retain_semantics Other paymentWithProductIdentifier:)]
pub unsafe fn paymentWithProductIdentifier(identifier: &NSString) -> Retained<AnyObject>;
#[method_id(@__retain_semantics Other productIdentifier)]
pub unsafe fn productIdentifier(&self) -> Retained<NSString>;
#[method_id(@__retain_semantics Other requestData)]
pub unsafe fn requestData(&self) -> Option<Retained<NSData>>;
#[method(quantity)]
pub unsafe fn quantity(&self) -> NSInteger;
#[method_id(@__retain_semantics Other applicationUsername)]
pub unsafe fn applicationUsername(&self) -> Option<Retained<NSString>>;
#[method(simulatesAskToBuyInSandbox)]
pub unsafe fn simulatesAskToBuyInSandbox(&self) -> bool;
#[cfg(feature = "SKPaymentDiscount")]
#[method_id(@__retain_semantics Other paymentDiscount)]
pub unsafe fn paymentDiscount(&self) -> Option<Retained<SKPaymentDiscount>>;
}
);
extern_methods!(
unsafe impl SKPayment {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct SKMutablePayment;
unsafe impl ClassType for SKMutablePayment {
#[inherits(NSObject)]
type Super = SKPayment;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCopying for SKMutablePayment {}
unsafe impl NSMutableCopying for SKMutablePayment {}
unsafe impl NSObjectProtocol for SKMutablePayment {}
extern_methods!(
unsafe impl SKMutablePayment {
#[method_id(@__retain_semantics Other applicationUsername)]
pub unsafe fn applicationUsername(&self) -> Option<Retained<NSString>>;
#[method(setApplicationUsername:)]
pub unsafe fn setApplicationUsername(&self, application_username: Option<&NSString>);
#[cfg(feature = "SKPaymentDiscount")]
#[method_id(@__retain_semantics Other paymentDiscount)]
pub unsafe fn paymentDiscount(&self) -> Option<Retained<SKPaymentDiscount>>;
#[cfg(feature = "SKPaymentDiscount")]
#[method(setPaymentDiscount:)]
pub unsafe fn setPaymentDiscount(&self, payment_discount: Option<&SKPaymentDiscount>);
#[method_id(@__retain_semantics Other productIdentifier)]
pub unsafe fn productIdentifier(&self) -> Retained<NSString>;
#[method(setProductIdentifier:)]
pub unsafe fn setProductIdentifier(&self, product_identifier: &NSString);
#[method(quantity)]
pub unsafe fn quantity(&self) -> NSInteger;
#[method(setQuantity:)]
pub unsafe fn setQuantity(&self, quantity: NSInteger);
#[method_id(@__retain_semantics Other requestData)]
pub unsafe fn requestData(&self) -> Option<Retained<NSData>>;
#[method(setRequestData:)]
pub unsafe fn setRequestData(&self, request_data: Option<&NSData>);
#[method(simulatesAskToBuyInSandbox)]
pub unsafe fn simulatesAskToBuyInSandbox(&self) -> bool;
#[method(setSimulatesAskToBuyInSandbox:)]
pub unsafe fn setSimulatesAskToBuyInSandbox(&self, simulates_ask_to_buy_in_sandbox: bool);
}
);
extern_methods!(
unsafe impl SKMutablePayment {
#[cfg(feature = "SKProduct")]
#[method_id(@__retain_semantics Other paymentWithProduct:)]
pub unsafe fn paymentWithProduct(product: &SKProduct) -> Retained<Self>;
}
);
extern_methods!(
unsafe impl SKMutablePayment {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);