use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
#[cfg(all(feature = "PKBarcodeEventMetadataRequest", feature = "block2"))]
pub type PKInformationRequestCompletionBlock =
*mut block2::DynBlock<dyn Fn(NonNull<PKBarcodeEventMetadataResponse>)>;
#[cfg(all(feature = "PKBarcodeEventMetadataRequest", feature = "block2"))]
pub type PKSignatureRequestCompletionBlock =
*mut block2::DynBlock<dyn Fn(NonNull<PKBarcodeEventSignatureResponse>)>;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct PKPaymentInformationEventExtension;
);
extern_conformance!(
unsafe impl NSObjectProtocol for PKPaymentInformationEventExtension {}
);
impl PKPaymentInformationEventExtension {
extern_methods!();
}
impl PKPaymentInformationEventExtension {
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>;
);
}
extern_protocol!(
pub unsafe trait PKPaymentInformationRequestHandling {
#[cfg(all(feature = "PKBarcodeEventMetadataRequest", feature = "block2"))]
#[unsafe(method(handleInformationRequest:completion:))]
#[unsafe(method_family = none)]
unsafe fn handleInformationRequest_completion(
&self,
info_request: &PKBarcodeEventMetadataRequest,
completion: PKInformationRequestCompletionBlock,
);
#[cfg(all(feature = "PKBarcodeEventMetadataRequest", feature = "block2"))]
#[unsafe(method(handleSignatureRequest:completion:))]
#[unsafe(method_family = none)]
unsafe fn handleSignatureRequest_completion(
&self,
signature_request: &PKBarcodeEventSignatureRequest,
completion: PKSignatureRequestCompletionBlock,
);
#[cfg(all(feature = "PKBarcodeEventMetadataRequest", feature = "block2"))]
#[unsafe(method(handleConfigurationRequest:completion:))]
#[unsafe(method_family = none)]
unsafe fn handleConfigurationRequest_completion(
&self,
configuration_request: &PKBarcodeEventConfigurationRequest,
completion: &block2::DynBlock<dyn Fn()>,
);
}
);