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")]
63unsafe impl ASAuthorizationPublicKeyCredentialDescriptor
64    for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor
65{
66}
67
68unsafe impl NSCoding for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
69
70unsafe impl NSCopying for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
71
72unsafe impl CopyingHelper for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {
73    type Result = Self;
74}
75
76unsafe impl NSObjectProtocol for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
77
78unsafe impl NSSecureCoding for ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {}
79
80impl ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor {
81    extern_methods!(
82        #[unsafe(method(initWithCredentialID:transports:))]
83        #[unsafe(method_family = init)]
84        pub unsafe fn initWithCredentialID_transports(
85            this: Allocated<Self>,
86            credential_id: &NSData,
87            allowed_transports: &NSArray<
88                ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport,
89            >,
90        ) -> Retained<Self>;
91
92        /// An array indicating transports for the credential indicated by credentialID.
93        #[unsafe(method(transports))]
94        #[unsafe(method_family = none)]
95        pub unsafe fn transports(
96            &self,
97        ) -> Retained<NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport>>;
98
99        /// Setter for [`transports`][Self::transports].
100        #[unsafe(method(setTransports:))]
101        #[unsafe(method_family = none)]
102        pub unsafe fn setTransports(
103            &self,
104            transports: &NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptorTransport>,
105        );
106
107        #[unsafe(method(new))]
108        #[unsafe(method_family = new)]
109        pub unsafe fn new() -> Retained<Self>;
110
111        #[unsafe(method(init))]
112        #[unsafe(method_family = init)]
113        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
114    );
115}