objc2_authentication_services/generated/
ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// A string indicating a transport for communicating with an authenticator.
11///
12/// See also [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationsecuritykeypublickeycredentialdescriptortransport?language=objc)
13// NS_TYPED_EXTENSIBLE_ENUM
14pub type ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport = NSString;
15
16extern "C" {
17    /// Indicates using USB or Lightning to communicate with an authenticator.
18    ///
19    /// See also [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationsecuritykeypublickeycredentialdescriptortransportusb?language=objc)
20    pub static ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransportUSB:
21        &'static ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport;
22}
23
24extern "C" {
25    /// Indiciates using NFC to communicate with an authenticator.
26    ///
27    /// See also [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationsecuritykeypublickeycredentialdescriptortransportnfc?language=objc)
28    pub static ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransportNFC:
29        &'static ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport;
30}
31
32extern "C" {
33    /// Indicates using Bluetooth, including BLE, to communicate with an authenticator.
34    ///
35    /// See also [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationsecuritykeypublickeycredentialdescriptortransportbluetooth?language=objc)
36    pub static ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransportBluetooth:
37        &'static ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport;
38}
39
40/// Returns a list of all transports the device currently supports for communicating with an authenticator.
41#[inline]
42pub unsafe extern "C-unwind" fn ASAuthorizationAllSupportedPublicKeyCredentialDescriptorTransports(
43) -> Retained<NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport>> {
44    extern "C-unwind" {
45        fn ASAuthorizationAllSupportedPublicKeyCredentialDescriptorTransports(
46        ) -> *mut NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport>;
47    }
48    let ret = unsafe { ASAuthorizationAllSupportedPublicKeyCredentialDescriptorTransports() };
49    unsafe { Retained::retain_autoreleased(ret) }
50        .expect("function was marked as returning non-null, but actually returned NULL")
51}
52
53extern_class!(
54    /// An object to describe a credential on a security key.
55    ///
56    /// See also [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationsecuritykeypublickeycredentialdescriptor?language=objc)
57    #[unsafe(super(NSObject))]
58    #[derive(Debug, PartialEq, Eq, Hash)]
59    pub struct ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor;
60);
61
62#[cfg(feature = "ASAuthorizationPublicKeyCredentialDescriptor")]
63extern_conformance!(
64    unsafe impl ASAuthorizationPublicKeyCredentialDescriptor
65        for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor
66    {
67    }
68);
69
70extern_conformance!(
71    unsafe impl NSCoding for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
72);
73
74extern_conformance!(
75    unsafe impl NSCopying for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
76);
77
78unsafe impl CopyingHelper for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {
79    type Result = Self;
80}
81
82extern_conformance!(
83    unsafe impl NSObjectProtocol for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
84);
85
86extern_conformance!(
87    unsafe impl NSSecureCoding for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
88);
89
90impl ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {
91    extern_methods!(
92        #[unsafe(method(initWithCredentialID:transports:))]
93        #[unsafe(method_family = init)]
94        pub unsafe fn initWithCredentialID_transports(
95            this: Allocated<Self>,
96            credential_id: &NSData,
97            allowed_transports: &NSArray<
98                ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport,
99            >,
100        ) -> Retained<Self>;
101
102        /// An array indicating transports for the credential indicated by credentialID.
103        #[unsafe(method(transports))]
104        #[unsafe(method_family = none)]
105        pub unsafe fn transports(
106            &self,
107        ) -> Retained<NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport>>;
108
109        /// Setter for [`transports`][Self::transports].
110        #[unsafe(method(setTransports:))]
111        #[unsafe(method_family = none)]
112        pub unsafe fn setTransports(
113            &self,
114            transports: &NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport>,
115        );
116
117        #[unsafe(method(new))]
118        #[unsafe(method_family = new)]
119        pub unsafe fn new() -> Retained<Self>;
120
121        #[unsafe(method(init))]
122        #[unsafe(method_family = init)]
123        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
124    );
125}