use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct INPaymentRecord;
);
extern_conformance!(
unsafe impl NSCoding for INPaymentRecord {}
);
extern_conformance!(
unsafe impl NSCopying for INPaymentRecord {}
);
unsafe impl CopyingHelper for INPaymentRecord {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for INPaymentRecord {}
);
extern_conformance!(
unsafe impl NSSecureCoding for INPaymentRecord {}
);
impl INPaymentRecord {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(all(
feature = "INCurrencyAmount",
feature = "INPaymentMethod",
feature = "INPaymentStatus",
feature = "INPerson"
))]
#[unsafe(method(initWithPayee:payer:currencyAmount:paymentMethod:note:status:feeAmount:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithPayee_payer_currencyAmount_paymentMethod_note_status_feeAmount(
this: Allocated<Self>,
payee: Option<&INPerson>,
payer: Option<&INPerson>,
currency_amount: Option<&INCurrencyAmount>,
payment_method: Option<&INPaymentMethod>,
note: Option<&NSString>,
status: INPaymentStatus,
fee_amount: Option<&INCurrencyAmount>,
) -> Option<Retained<Self>>;
#[cfg(all(
feature = "INCurrencyAmount",
feature = "INPaymentMethod",
feature = "INPaymentStatus",
feature = "INPerson"
))]
#[unsafe(method(initWithPayee:payer:currencyAmount:paymentMethod:note:status:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithPayee_payer_currencyAmount_paymentMethod_note_status(
this: Allocated<Self>,
payee: Option<&INPerson>,
payer: Option<&INPerson>,
currency_amount: Option<&INCurrencyAmount>,
payment_method: Option<&INPaymentMethod>,
note: Option<&NSString>,
status: INPaymentStatus,
) -> Option<Retained<Self>>;
#[cfg(feature = "INPerson")]
#[unsafe(method(payee))]
#[unsafe(method_family = none)]
pub unsafe fn payee(&self) -> Option<Retained<INPerson>>;
#[cfg(feature = "INPerson")]
#[unsafe(method(payer))]
#[unsafe(method_family = none)]
pub unsafe fn payer(&self) -> Option<Retained<INPerson>>;
#[cfg(feature = "INCurrencyAmount")]
#[unsafe(method(currencyAmount))]
#[unsafe(method_family = none)]
pub unsafe fn currencyAmount(&self) -> Option<Retained<INCurrencyAmount>>;
#[unsafe(method(note))]
#[unsafe(method_family = none)]
pub unsafe fn note(&self) -> Option<Retained<NSString>>;
#[cfg(feature = "INPaymentStatus")]
#[unsafe(method(status))]
#[unsafe(method_family = none)]
pub unsafe fn status(&self) -> INPaymentStatus;
#[cfg(feature = "INPaymentMethod")]
#[unsafe(method(paymentMethod))]
#[unsafe(method_family = none)]
pub unsafe fn paymentMethod(&self) -> Option<Retained<INPaymentMethod>>;
#[cfg(feature = "INCurrencyAmount")]
#[unsafe(method(feeAmount))]
#[unsafe(method_family = none)]
pub unsafe fn feeAmount(&self) -> Option<Retained<INCurrencyAmount>>;
);
}
impl INPaymentRecord {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}