objc_sys/
selector.rs

1use std::os::raw::c_char;
2
3use crate::{OpaqueData, BOOL};
4
5/// An opaque type that represents a method selector.
6///
7/// Selectors are immutable.
8#[repr(C)]
9pub struct objc_selector {
10    _priv: [u8; 0],
11    _p: OpaqueData,
12}
13
14extern_c! {
15    pub fn sel_getName(sel: *const objc_selector) -> *const c_char;
16    pub fn sel_isEqual(lhs: *const objc_selector, rhs: *const objc_selector) -> BOOL;
17    pub fn sel_registerName(name: *const c_char) -> *const objc_selector;
18
19    #[cfg(any(doc, not(feature = "unstable-objfw")))]
20    pub fn sel_getUid(name: *const c_char) -> *const objc_selector;
21
22    #[cfg(any(doc, target_vendor = "apple"))]
23    pub fn sel_isMapped(sel: *const objc_selector) -> BOOL;
24}