use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct ASPasskeyAssertionCredential;
);
#[cfg(feature = "ASAuthorizationCredential")]
extern_conformance!(
unsafe impl ASAuthorizationCredential for ASPasskeyAssertionCredential {}
);
extern_conformance!(
unsafe impl NSCoding for ASPasskeyAssertionCredential {}
);
extern_conformance!(
unsafe impl NSCopying for ASPasskeyAssertionCredential {}
);
unsafe impl CopyingHelper for ASPasskeyAssertionCredential {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for ASPasskeyAssertionCredential {}
);
extern_conformance!(
unsafe impl NSSecureCoding for ASPasskeyAssertionCredential {}
);
impl ASPasskeyAssertionCredential {
extern_methods!(
#[unsafe(method(initWithUserHandle:relyingParty:signature:clientDataHash:authenticatorData:credentialID:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithUserHandle_relyingParty_signature_clientDataHash_authenticatorData_credentialID(
this: Allocated<Self>,
user_handle: &NSData,
relying_party: &NSString,
signature: &NSData,
client_data_hash: &NSData,
authenticator_data: &NSData,
credential_id: &NSData,
) -> Retained<Self>;
#[cfg(feature = "ASPasskeyAssertionCredentialExtensionOutput")]
#[unsafe(method(initWithUserHandle:relyingParty:signature:clientDataHash:authenticatorData:credentialID:extensionOutput:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithUserHandle_relyingParty_signature_clientDataHash_authenticatorData_credentialID_extensionOutput(
this: Allocated<Self>,
user_handle: &NSData,
relying_party: &NSString,
signature: &NSData,
client_data_hash: &NSData,
authenticator_data: &NSData,
credential_id: &NSData,
extension_output: Option<&ASPasskeyAssertionCredentialExtensionOutput>,
) -> Retained<Self>;
#[unsafe(method(credentialWithUserHandle:relyingParty:signature:clientDataHash:authenticatorData:credentialID:))]
#[unsafe(method_family = none)]
pub unsafe fn credentialWithUserHandle_relyingParty_signature_clientDataHash_authenticatorData_credentialID(
user_handle: &NSData,
relying_party: &NSString,
signature: &NSData,
client_data_hash: &NSData,
authenticator_data: &NSData,
credential_id: &NSData,
) -> Retained<Self>;
#[unsafe(method(userHandle))]
#[unsafe(method_family = none)]
pub unsafe fn userHandle(&self) -> Retained<NSData>;
#[unsafe(method(relyingParty))]
#[unsafe(method_family = none)]
pub unsafe fn relyingParty(&self) -> Retained<NSString>;
#[unsafe(method(signature))]
#[unsafe(method_family = none)]
pub unsafe fn signature(&self) -> Retained<NSData>;
#[unsafe(method(clientDataHash))]
#[unsafe(method_family = none)]
pub unsafe fn clientDataHash(&self) -> Retained<NSData>;
#[unsafe(method(authenticatorData))]
#[unsafe(method_family = none)]
pub unsafe fn authenticatorData(&self) -> Retained<NSData>;
#[unsafe(method(credentialID))]
#[unsafe(method_family = none)]
pub unsafe fn credentialID(&self) -> Retained<NSData>;
#[cfg(feature = "ASPasskeyAssertionCredentialExtensionOutput")]
#[unsafe(method(extensionOutput))]
#[unsafe(method_family = none)]
pub unsafe fn extensionOutput(
&self,
) -> Option<Retained<ASPasskeyAssertionCredentialExtensionOutput>>;
#[cfg(feature = "ASPasskeyAssertionCredentialExtensionOutput")]
#[unsafe(method(setExtensionOutput:))]
#[unsafe(method_family = none)]
pub unsafe fn setExtensionOutput(
&self,
extension_output: Option<&ASPasskeyAssertionCredentialExtensionOutput>,
);
);
}
impl ASPasskeyAssertionCredential {
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>;
);
}