use objc::{msg_send, sel, sel_impl};
use crate::{
foundation::{NSArray, NSPredicate, NSString},
object,
objective_c_runtime::{
macros::interface_impl,
traits::{FromId, PNSObject},
},
};
object! {
unsafe pub struct CNGroup;
}
#[interface_impl(NSObject)]
impl CNGroup {
#[property]
pub fn name(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), name]) }
}
#[property]
pub fn identifier(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), identifier]) }
}
#[method]
pub fn predicate_for_groups_with_identifiers(identifiers: NSArray<NSString>) -> NSPredicate {
unsafe {
NSPredicate::from_id(msg_send![
CNGroup::m_class(),
predicateForGroupsWithIdentifiers: identifiers
])
}
}
#[method]
pub fn predicate_for_groups_in_container_with_identifiers(container: NSString) -> NSPredicate {
unsafe {
NSPredicate::from_id(msg_send![
CNGroup::m_class(),
predicateForGroupsInContainer: container
])
}
}
#[method]
pub fn predicate_for_subgroups_in_group_with_identifier(parent_group: NSString) -> NSPredicate {
unsafe {
NSPredicate::from_id(msg_send![
CNGroup::m_class(),
predicateForSubgroupsInGroup: parent_group
])
}
}
}