objc2-pass-kit 0.3.2

Bindings to the PassKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use objc2::__framework_prelude::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/passkit/pkissuerprovisioningextensionauthorizationresult?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PKIssuerProvisioningExtensionAuthorizationResult(pub NSInteger);
impl PKIssuerProvisioningExtensionAuthorizationResult {
    #[doc(alias = "PKIssuerProvisioningExtensionAuthorizationResultCanceled")]
    pub const Canceled: Self = Self(0);
    #[doc(alias = "PKIssuerProvisioningExtensionAuthorizationResultAuthorized")]
    pub const Authorized: Self = Self(1);
}

unsafe impl Encode for PKIssuerProvisioningExtensionAuthorizationResult {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for PKIssuerProvisioningExtensionAuthorizationResult {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_protocol!(
    /// [Apple's documentation](https://developer.apple.com/documentation/passkit/pkissuerprovisioningextensionauthorizationproviding?language=objc)
    pub unsafe trait PKIssuerProvisioningExtensionAuthorizationProviding:
        NSObjectProtocol
    {
        #[cfg(feature = "block2")]
        #[unsafe(method(completionHandler))]
        #[unsafe(method_family = none)]
        unsafe fn completionHandler(
            &self,
        ) -> *mut block2::DynBlock<dyn Fn(PKIssuerProvisioningExtensionAuthorizationResult)>;

        #[cfg(feature = "block2")]
        /// Setter for [`completionHandler`][Self::completionHandler].
        ///
        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
        #[unsafe(method(setCompletionHandler:))]
        #[unsafe(method_family = none)]
        unsafe fn setCompletionHandler(
            &self,
            completion_handler: Option<
                &block2::DynBlock<dyn Fn(PKIssuerProvisioningExtensionAuthorizationResult)>,
            >,
        );
    }
);