1use core::ffi::c_void;
13
14#[cfg(any(
15 doc,
16 all(
17 target_vendor = "apple",
18 not(all(target_os = "macos", target_arch = "x86"))
19 )
20))]
21use crate::objc_class;
22use crate::objc_object;
23
24extern_c_unwind! {
27 #[cfg(any(doc, not(feature = "unstable-objfw")))]
31 pub fn objc_autoreleasePoolPop(pool: *mut c_void);
32 #[cfg(any(doc, not(feature = "unstable-objfw")))]
33 pub fn objc_autoreleasePoolPush() -> *mut c_void;
34
35 pub fn objc_autorelease(value: *mut objc_object) -> *mut objc_object;
38 pub fn objc_autoreleaseReturnValue(value: *mut objc_object) -> *mut objc_object;
39
40 pub fn objc_copyWeak(to: *mut *mut objc_object, from: *mut *mut objc_object);
43 pub fn objc_destroyWeak(addr: *mut *mut objc_object);
44 pub fn objc_initWeak(addr: *mut *mut objc_object, value: *mut objc_object) -> *mut objc_object;
45 pub fn objc_loadWeak(addr: *mut *mut objc_object) -> *mut objc_object;
47 pub fn objc_loadWeakRetained(addr: *mut *mut objc_object) -> *mut objc_object;
48 pub fn objc_moveWeak(to: *mut *mut objc_object, from: *mut *mut objc_object);
49
50 pub fn objc_release(value: *mut objc_object);
53 pub fn objc_retain(value: *mut objc_object) -> *mut objc_object;
54 pub fn objc_retainAutorelease(value: *mut objc_object) -> *mut objc_object;
55 pub fn objc_retainAutoreleaseReturnValue(value: *mut objc_object) -> *mut objc_object;
56 pub fn objc_retainAutoreleasedReturnValue(value: *mut objc_object) -> *mut objc_object;
57 pub fn objc_retainBlock(value: *mut objc_object) -> *mut objc_object;
59
60 pub fn objc_storeStrong(addr: *mut *mut objc_object, value: *mut objc_object);
63 pub fn objc_storeWeak(addr: *mut *mut objc_object, value: *mut objc_object)
65 -> *mut objc_object;
66
67 #[cfg(any(doc, all(target_vendor = "apple", not(all(target_os = "macos", target_arch = "x86")))))]
84 pub fn objc_alloc(value: *const objc_class) -> *mut objc_object;
85
86 #[cfg(any(doc, all(target_vendor = "apple", not(all(target_os = "macos", target_arch = "x86")))))]
88 pub fn objc_allocWithZone(value: *const objc_class) -> *mut objc_object;
89
90 }