use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CBAttribute")]
pub struct CBDescriptor;
#[cfg(feature = "CBAttribute")]
unsafe impl ClassType for CBDescriptor {
#[inherits(NSObject)]
type Super = CBAttribute;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "CBAttribute")]
unsafe impl NSObjectProtocol for CBDescriptor {}
extern_methods!(
#[cfg(feature = "CBAttribute")]
unsafe impl CBDescriptor {
#[cfg(feature = "CBCharacteristic")]
#[method_id(@__retain_semantics Other characteristic)]
pub unsafe fn characteristic(&self) -> Option<Retained<CBCharacteristic>>;
#[method_id(@__retain_semantics Other value)]
pub unsafe fn value(&self) -> Option<Retained<AnyObject>>;
}
);
extern_methods!(
#[cfg(feature = "CBAttribute")]
unsafe impl CBDescriptor {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(feature = "CBAttribute")]
unsafe impl CBDescriptor {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CBAttribute")]
pub struct CBMutableDescriptor;
#[cfg(feature = "CBAttribute")]
unsafe impl ClassType for CBMutableDescriptor {
#[inherits(CBAttribute, NSObject)]
type Super = CBDescriptor;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "CBAttribute")]
unsafe impl NSObjectProtocol for CBMutableDescriptor {}
extern_methods!(
#[cfg(feature = "CBAttribute")]
unsafe impl CBMutableDescriptor {
#[cfg(feature = "CBUUID")]
#[method_id(@__retain_semantics Init initWithType:value:)]
pub unsafe fn initWithType_value(
this: Allocated<Self>,
uuid: &CBUUID,
value: Option<&AnyObject>,
) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(feature = "CBAttribute")]
unsafe impl CBMutableDescriptor {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(feature = "CBAttribute")]
unsafe impl CBMutableDescriptor {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);