1#[cfg(any(doc, target_vendor = "apple"))]
4use std::os::raw::c_int;
5
6use crate::{id, objc_class, BOOL};
7
8#[allow(clippy::unnecessary_cast)]
10pub const YES: BOOL = true as BOOL; #[allow(clippy::unnecessary_cast)]
14pub const NO: BOOL = false as BOOL; pub const nil: id = 0 as *mut _;
18
19pub const Nil: *mut objc_class = 0 as *mut _;
21
22pub type objc_AssociationPolicy = usize;
28pub const OBJC_ASSOCIATION_ASSIGN: objc_AssociationPolicy = 0;
32pub const OBJC_ASSOCIATION_RETAIN_NONATOMIC: objc_AssociationPolicy = 1;
36pub const OBJC_ASSOCIATION_COPY_NONATOMIC: objc_AssociationPolicy = 3;
40pub const OBJC_ASSOCIATION_RETAIN: objc_AssociationPolicy = 0o1401;
44pub const OBJC_ASSOCIATION_COPY: objc_AssociationPolicy = 0o1403;
48
49#[cfg(any(doc, target_vendor = "apple"))]
50pub const OBJC_SYNC_SUCCESS: c_int = 0;
51#[cfg(any(doc, target_vendor = "apple"))]
52pub const OBJC_SYNC_NOT_OWNING_THREAD_ERROR: c_int = -1;
53#[cfg(any(doc, target_vendor = "apple"))]
55pub const OBJC_SYNC_TIMED_OUT: c_int = -2;
56#[cfg(any(doc, target_vendor = "apple"))]
58pub const OBJC_SYNC_NOT_INITIALIZED: c_int = -3;
59
60#[cfg(test)]
61mod tests {
62 use super::*;
63 #[test]
64 fn test_association_policy() {
65 assert_eq!(OBJC_ASSOCIATION_RETAIN, 769);
66 assert_eq!(OBJC_ASSOCIATION_COPY, 771);
67
68 assert_eq!(OBJC_ASSOCIATION_RETAIN, 0x301);
70 assert_eq!(OBJC_ASSOCIATION_COPY, 0x303);
71 }
72}