objc2-authentication-services 0.3.2

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

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationplatformpublickeycredentialregistrationrequeststyle?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct ASAuthorizationPlatformPublicKeyCredentialRegistrationRequestStyle(pub NSInteger);
impl ASAuthorizationPlatformPublicKeyCredentialRegistrationRequestStyle {
    /// Perform a request using the standard presentation style. This is the default style.
    #[doc(alias = "ASAuthorizationPlatformPublicKeyCredentialRegistrationRequestStyleStandard")]
    pub const Standard: Self = Self(0);
    /// Perform a conditional request. This style of request is meant to opportunistically add passkeys to existing
    /// password-based accounts, at the discretion of the user's credential manager. It should be performed
    /// shortly after a user has signed in with a password. If the user is using a password and passkey manager,
    /// and certain internal conditions of that credential manager are met (e.g. the user signed in recently with a
    /// matching password-based account and does not yet have a passkey for this account), then this request
    /// may proceed automatically, without further user interaction. If any of the internal conditions are not met,
    /// this request will return an error without showing any UI to the user, and may be retried the next time they
    /// sign in.
    #[doc(alias = "ASAuthorizationPlatformPublicKeyCredentialRegistrationRequestStyleConditional")]
    pub const Conditional: Self = Self(1);
}

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

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

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationplatformpublickeycredentialregistrationrequest?language=objc)
    #[unsafe(super(ASAuthorizationRequest, NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "ASAuthorizationRequest")]
    pub struct ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest;
);

#[cfg(all(
    feature = "ASAuthorizationPublicKeyCredentialRegistrationRequest",
    feature = "ASAuthorizationRequest"
))]
extern_conformance!(
    unsafe impl ASAuthorizationPublicKeyCredentialRegistrationRequest
        for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest
    {
    }
);

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSCoding for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSCopying for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
unsafe impl CopyingHelper for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {
    type Result = Self;
}

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSObjectProtocol for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSSecureCoding for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
impl ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {
    extern_methods!(
        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;

        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput")]
        #[unsafe(method(largeBlob))]
        #[unsafe(method_family = none)]
        pub unsafe fn largeBlob(
            &self,
        ) -> Option<Retained<ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput>>;

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput")]
        /// Setter for [`largeBlob`][Self::largeBlob].
        #[unsafe(method(setLargeBlob:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setLargeBlob(
            &self,
            large_blob: Option<&ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput>,
        );

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialPRFRegistrationInput")]
        #[unsafe(method(prf))]
        #[unsafe(method_family = none)]
        pub unsafe fn prf(
            &self,
        ) -> Option<Retained<ASAuthorizationPublicKeyCredentialPRFRegistrationInput>>;

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialPRFRegistrationInput")]
        /// Setter for [`prf`][Self::prf].
        #[unsafe(method(setPrf:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setPrf(
            &self,
            prf: Option<&ASAuthorizationPublicKeyCredentialPRFRegistrationInput>,
        );

        #[unsafe(method(requestStyle))]
        #[unsafe(method_family = none)]
        pub unsafe fn requestStyle(
            &self,
        ) -> ASAuthorizationPlatformPublicKeyCredentialRegistrationRequestStyle;

        /// Setter for [`requestStyle`][Self::requestStyle].
        #[unsafe(method(setRequestStyle:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setRequestStyle(
            &self,
            request_style: ASAuthorizationPlatformPublicKeyCredentialRegistrationRequestStyle,
        );
    );
}

#[cfg(feature = "ASAuthorizationRequest")]
impl ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest {
    extern_methods!();
}

#[cfg(all(
    feature = "ASAuthorizationRequest",
    feature = "ASAuthorizationWebBrowserPlatformPublicKeyCredentialRegistrationRequest"
))]
extern_conformance!(
    unsafe impl ASAuthorizationWebBrowserPlatformPublicKeyCredentialRegistrationRequest
        for ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest
    {
    }
);