use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct MCAdvertiserAssistant;
unsafe impl ClassType for MCAdvertiserAssistant {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for MCAdvertiserAssistant {}
extern_methods!(
unsafe impl MCAdvertiserAssistant {
#[cfg(feature = "MCSession")]
#[method_id(@__retain_semantics Init initWithServiceType:discoveryInfo:session:)]
pub unsafe fn initWithServiceType_discoveryInfo_session(
this: Allocated<Self>,
service_type: &NSString,
info: Option<&NSDictionary<NSString, NSString>>,
session: &MCSession,
) -> Retained<Self>;
#[method(start)]
pub unsafe fn start(&self);
#[method(stop)]
pub unsafe fn stop(&self);
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn MCAdvertiserAssistantDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn MCAdvertiserAssistantDelegate>>,
);
#[cfg(feature = "MCSession")]
#[method_id(@__retain_semantics Other session)]
pub unsafe fn session(&self) -> Retained<MCSession>;
#[method_id(@__retain_semantics Other discoveryInfo)]
pub unsafe fn discoveryInfo(&self) -> Option<Retained<NSDictionary<NSString, NSString>>>;
#[method_id(@__retain_semantics Other serviceType)]
pub unsafe fn serviceType(&self) -> Retained<NSString>;
}
);
extern_methods!(
unsafe impl MCAdvertiserAssistant {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait MCAdvertiserAssistantDelegate: NSObjectProtocol {
#[optional]
#[method(advertiserAssistantWillPresentInvitation:)]
unsafe fn advertiserAssistantWillPresentInvitation(
&self,
advertiser_assistant: &MCAdvertiserAssistant,
);
#[optional]
#[method(advertiserAssistantDidDismissInvitation:)]
unsafe fn advertiserAssistantDidDismissInvitation(
&self,
advertiser_assistant: &MCAdvertiserAssistant,
);
}
unsafe impl ProtocolType for dyn MCAdvertiserAssistantDelegate {}
);