use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[unsafe(super(NSProxy))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "NSProxy")]
pub struct NSProtocolChecker;
);
#[cfg(feature = "NSProxy")]
extern_conformance!(
unsafe impl NSObjectProtocol for NSProtocolChecker {}
);
#[cfg(feature = "NSProxy")]
impl NSProtocolChecker {
extern_methods!(
#[unsafe(method(protocol))]
#[unsafe(method_family = none)]
pub fn protocol(&self) -> Retained<AnyProtocol>;
#[unsafe(method(target))]
#[unsafe(method_family = none)]
pub fn target(&self) -> Option<Retained<NSObject>>;
);
}
#[cfg(feature = "NSProxy")]
impl NSProtocolChecker {
extern_methods!(
#[unsafe(method(protocolCheckerWithTarget:protocol:))]
#[unsafe(method_family = none)]
pub unsafe fn protocolCheckerWithTarget_protocol(
an_object: &NSObject,
a_protocol: &AnyProtocol,
) -> Retained<Self>;
#[unsafe(method(initWithTarget:protocol:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithTarget_protocol(
this: Allocated<Self>,
an_object: &NSObject,
a_protocol: &AnyProtocol,
) -> Retained<Self>;
);
}