use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait ASAccountAuthenticationModificationControllerDelegate:
NSObjectProtocol
{
#[cfg(feature = "ASAccountAuthenticationModificationRequest")]
#[optional]
#[unsafe(method(accountAuthenticationModificationController:didSuccessfullyCompleteRequest:withUserInfo:))]
#[unsafe(method_family = none)]
unsafe fn accountAuthenticationModificationController_didSuccessfullyCompleteRequest_withUserInfo(
&self,
controller: &ASAccountAuthenticationModificationController,
request: &ASAccountAuthenticationModificationRequest,
user_info: Option<&NSDictionary>,
);
#[cfg(feature = "ASAccountAuthenticationModificationRequest")]
#[optional]
#[unsafe(method(accountAuthenticationModificationController:didFailRequest:withError:))]
#[unsafe(method_family = none)]
unsafe fn accountAuthenticationModificationController_didFailRequest_withError(
&self,
controller: &ASAccountAuthenticationModificationController,
request: &ASAccountAuthenticationModificationRequest,
error: &NSError,
);
}
);
extern_protocol!(
pub unsafe trait ASAccountAuthenticationModificationControllerPresentationContextProviding:
NSObjectProtocol + MainThreadOnly
{
#[cfg(feature = "ASFoundation")]
#[cfg(target_os = "macos")]
#[unsafe(method(presentationAnchorForAccountAuthenticationModificationController:))]
#[unsafe(method_family = none)]
unsafe fn presentationAnchorForAccountAuthenticationModificationController(
&self,
controller: &ASAccountAuthenticationModificationController,
) -> Retained<ASPresentationAnchor>;
}
);
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct ASAccountAuthenticationModificationController;
);
extern_conformance!(
unsafe impl NSObjectProtocol for ASAccountAuthenticationModificationController {}
);
impl ASAccountAuthenticationModificationController {
extern_methods!(
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub unsafe fn delegate(
&self,
) -> Option<
Retained<ProtocolObject<dyn ASAccountAuthenticationModificationControllerDelegate>>,
>;
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub unsafe fn setDelegate(
&self,
delegate: Option<
&ProtocolObject<dyn ASAccountAuthenticationModificationControllerDelegate>,
>,
);
#[unsafe(method(presentationContextProvider))]
#[unsafe(method_family = none)]
pub unsafe fn presentationContextProvider(
&self,
mtm: MainThreadMarker,
) -> Option<
Retained<
ProtocolObject<
dyn ASAccountAuthenticationModificationControllerPresentationContextProviding,
>,
>,
>;
#[unsafe(method(setPresentationContextProvider:))]
#[unsafe(method_family = none)]
pub unsafe fn setPresentationContextProvider(
&self,
presentation_context_provider: Option<
&ProtocolObject<
dyn ASAccountAuthenticationModificationControllerPresentationContextProviding,
>,
>,
);
#[cfg(feature = "ASAccountAuthenticationModificationRequest")]
#[unsafe(method(performRequest:))]
#[unsafe(method_family = none)]
pub unsafe fn performRequest(&self, request: &ASAccountAuthenticationModificationRequest);
);
}
impl ASAccountAuthenticationModificationController {
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>;
);
}