objc2_disk_arbitration/generated/
DADissenter.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7use objc2_core_foundation::*;
8
9use crate::*;
10
11/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnsuccess?language=objc)
12pub const kDAReturnSuccess: c_int = 0;
13/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnerror?language=objc)
14pub const kDAReturnError: c_int = -119930879;
15/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnbusy?language=objc)
16pub const kDAReturnBusy: c_int = -119930878;
17/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnbadargument?language=objc)
18pub const kDAReturnBadArgument: c_int = -119930877;
19/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnexclusiveaccess?language=objc)
20pub const kDAReturnExclusiveAccess: c_int = -119930876;
21/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnoresources?language=objc)
22pub const kDAReturnNoResources: c_int = -119930875;
23/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnotfound?language=objc)
24pub const kDAReturnNotFound: c_int = -119930874;
25/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnotmounted?language=objc)
26pub const kDAReturnNotMounted: c_int = -119930873;
27/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnotpermitted?language=objc)
28pub const kDAReturnNotPermitted: c_int = -119930872;
29/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnotprivileged?language=objc)
30pub const kDAReturnNotPrivileged: c_int = -119930871;
31/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnotready?language=objc)
32pub const kDAReturnNotReady: c_int = -119930870;
33/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnnotwritable?language=objc)
34pub const kDAReturnNotWritable: c_int = -119930869;
35/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/kdareturnunsupported?language=objc)
36pub const kDAReturnUnsupported: c_int = -119930868;
37
38/// [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/dareturn?language=objc)
39#[cfg(feature = "libc")]
40pub type DAReturn = libc::mach_error_t;
41
42/// Type of a reference to DADissenter instances.
43///
44/// See also [Apple's documentation](https://developer.apple.com/documentation/diskarbitration/dadissenter?language=objc)
45#[repr(C)]
46pub struct DADissenter {
47    inner: [u8; 0],
48    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
49}
50
51cf_type!(
52    #[encoding_name = "__DADissenter"]
53    unsafe impl DADissenter {}
54);
55
56/// Creates a new dissenter object.
57///
58/// Parameter `allocator`: The allocator object to be used to allocate memory.
59///
60/// Parameter `status`: The return code.
61///
62/// Parameter `string`: The return code string.  Pass NULL for no reason.
63///
64/// Returns: A reference to a new DADissenter.
65#[cfg(feature = "libc")]
66#[inline]
67pub unsafe extern "C-unwind" fn DADissenterCreate(
68    allocator: Option<&CFAllocator>,
69    status: DAReturn,
70    string: Option<&CFString>,
71) -> CFRetained<DADissenter> {
72    extern "C-unwind" {
73        fn DADissenterCreate(
74            allocator: Option<&CFAllocator>,
75            status: DAReturn,
76            string: Option<&CFString>,
77        ) -> Option<NonNull<DADissenter>>;
78    }
79    let ret = unsafe { DADissenterCreate(allocator, status, string) };
80    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
81    unsafe { CFRetained::from_raw(ret) }
82}
83
84extern "C-unwind" {
85    /// Obtains the return code.
86    ///
87    /// Parameter `dissenter`: The DADissenter for which to obtain the return code.
88    ///
89    /// Returns: The return code.  A BSD return code, if applicable, is encoded with unix_err().
90    #[cfg(feature = "libc")]
91    pub fn DADissenterGetStatus(dissenter: &DADissenter) -> DAReturn;
92}
93
94/// Obtains the return code string.
95///
96/// Parameter `dissenter`: The DADissenter for which to obtain the return code string.
97///
98/// Returns: The return code string.
99#[inline]
100pub unsafe extern "C-unwind" fn DADissenterGetStatusString(
101    dissenter: &DADissenter,
102) -> Option<CFRetained<CFString>> {
103    extern "C-unwind" {
104        fn DADissenterGetStatusString(dissenter: &DADissenter) -> Option<NonNull<CFString>>;
105    }
106    let ret = unsafe { DADissenterGetStatusString(dissenter) };
107    ret.map(|ret| unsafe { CFRetained::retain(ret) })
108}