objc2_core_foundation/generated/
CFFileSecurity.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::marker::{PhantomData, PhantomPinned};
5use core::ptr::NonNull;
6#[cfg(feature = "objc2")]
7use objc2::__framework_prelude::*;
8
9use crate::*;
10
11/// [Apple's documentation](https://developer.apple.com/documentation/corefoundation/cffilesecurity?language=objc)
12///
13/// This is toll-free bridged with `NSFileSecurity`.
14#[doc(alias = "CFFileSecurityRef")]
15#[repr(C)]
16pub struct CFFileSecurity {
17    inner: [u8; 0],
18    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22    unsafe impl CFFileSecurity {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26    unsafe impl RefEncode<"__CFFileSecurity"> for CFFileSecurity {}
27);
28
29unsafe impl ConcreteType for CFFileSecurity {
30    #[doc(alias = "CFFileSecurityGetTypeID")]
31    #[inline]
32    fn type_id() -> CFTypeID {
33        extern "C-unwind" {
34            fn CFFileSecurityGetTypeID() -> CFTypeID;
35        }
36        unsafe { CFFileSecurityGetTypeID() }
37    }
38}
39
40impl CFFileSecurity {
41    #[doc(alias = "CFFileSecurityCreate")]
42    #[inline]
43    pub fn new(allocator: Option<&CFAllocator>) -> Option<CFRetained<CFFileSecurity>> {
44        extern "C-unwind" {
45            fn CFFileSecurityCreate(
46                allocator: Option<&CFAllocator>,
47            ) -> Option<NonNull<CFFileSecurity>>;
48        }
49        let ret = unsafe { CFFileSecurityCreate(allocator) };
50        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
51    }
52
53    #[doc(alias = "CFFileSecurityCreateCopy")]
54    #[inline]
55    pub fn new_copy(
56        allocator: Option<&CFAllocator>,
57        file_sec: Option<&CFFileSecurity>,
58    ) -> Option<CFRetained<CFFileSecurity>> {
59        extern "C-unwind" {
60            fn CFFileSecurityCreateCopy(
61                allocator: Option<&CFAllocator>,
62                file_sec: Option<&CFFileSecurity>,
63            ) -> Option<NonNull<CFFileSecurity>>;
64        }
65        let ret = unsafe { CFFileSecurityCreateCopy(allocator, file_sec) };
66        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
67    }
68
69    /// # Safety
70    ///
71    /// `owner_uuid` must be a valid pointer.
72    #[doc(alias = "CFFileSecurityCopyOwnerUUID")]
73    #[cfg(feature = "CFUUID")]
74    #[inline]
75    pub unsafe fn owner_uuid(&self, owner_uuid: *mut *const CFUUID) -> bool {
76        extern "C-unwind" {
77            fn CFFileSecurityCopyOwnerUUID(
78                file_sec: &CFFileSecurity,
79                owner_uuid: *mut *const CFUUID,
80            ) -> Boolean;
81        }
82        let ret = unsafe { CFFileSecurityCopyOwnerUUID(self, owner_uuid) };
83        ret != 0
84    }
85
86    #[doc(alias = "CFFileSecuritySetOwnerUUID")]
87    #[cfg(feature = "CFUUID")]
88    #[inline]
89    pub fn set_owner_uuid(&self, owner_uuid: Option<&CFUUID>) -> bool {
90        extern "C-unwind" {
91            fn CFFileSecuritySetOwnerUUID(
92                file_sec: &CFFileSecurity,
93                owner_uuid: Option<&CFUUID>,
94            ) -> Boolean;
95        }
96        let ret = unsafe { CFFileSecuritySetOwnerUUID(self, owner_uuid) };
97        ret != 0
98    }
99
100    /// # Safety
101    ///
102    /// `group_uuid` must be a valid pointer.
103    #[doc(alias = "CFFileSecurityCopyGroupUUID")]
104    #[cfg(feature = "CFUUID")]
105    #[inline]
106    pub unsafe fn group_uuid(&self, group_uuid: *mut *const CFUUID) -> bool {
107        extern "C-unwind" {
108            fn CFFileSecurityCopyGroupUUID(
109                file_sec: &CFFileSecurity,
110                group_uuid: *mut *const CFUUID,
111            ) -> Boolean;
112        }
113        let ret = unsafe { CFFileSecurityCopyGroupUUID(self, group_uuid) };
114        ret != 0
115    }
116
117    #[doc(alias = "CFFileSecuritySetGroupUUID")]
118    #[cfg(feature = "CFUUID")]
119    #[inline]
120    pub fn set_group_uuid(&self, group_uuid: Option<&CFUUID>) -> bool {
121        extern "C-unwind" {
122            fn CFFileSecuritySetGroupUUID(
123                file_sec: &CFFileSecurity,
124                group_uuid: Option<&CFUUID>,
125            ) -> Boolean;
126        }
127        let ret = unsafe { CFFileSecuritySetGroupUUID(self, group_uuid) };
128        ret != 0
129    }
130
131    /// # Safety
132    ///
133    /// `owner` must be a valid pointer.
134    #[doc(alias = "CFFileSecurityGetOwner")]
135    #[cfg(feature = "libc")]
136    #[inline]
137    pub unsafe fn owner(&self, owner: *mut libc::uid_t) -> bool {
138        extern "C-unwind" {
139            fn CFFileSecurityGetOwner(
140                file_sec: &CFFileSecurity,
141                owner: *mut libc::uid_t,
142            ) -> Boolean;
143        }
144        let ret = unsafe { CFFileSecurityGetOwner(self, owner) };
145        ret != 0
146    }
147
148    #[doc(alias = "CFFileSecuritySetOwner")]
149    #[cfg(feature = "libc")]
150    #[inline]
151    pub fn set_owner(&self, owner: libc::uid_t) -> bool {
152        extern "C-unwind" {
153            fn CFFileSecuritySetOwner(file_sec: &CFFileSecurity, owner: libc::uid_t) -> Boolean;
154        }
155        let ret = unsafe { CFFileSecuritySetOwner(self, owner) };
156        ret != 0
157    }
158
159    /// # Safety
160    ///
161    /// `group` must be a valid pointer.
162    #[doc(alias = "CFFileSecurityGetGroup")]
163    #[cfg(feature = "libc")]
164    #[inline]
165    pub unsafe fn group(&self, group: *mut libc::gid_t) -> bool {
166        extern "C-unwind" {
167            fn CFFileSecurityGetGroup(
168                file_sec: &CFFileSecurity,
169                group: *mut libc::gid_t,
170            ) -> Boolean;
171        }
172        let ret = unsafe { CFFileSecurityGetGroup(self, group) };
173        ret != 0
174    }
175
176    #[doc(alias = "CFFileSecuritySetGroup")]
177    #[cfg(feature = "libc")]
178    #[inline]
179    pub fn set_group(&self, group: libc::gid_t) -> bool {
180        extern "C-unwind" {
181            fn CFFileSecuritySetGroup(file_sec: &CFFileSecurity, group: libc::gid_t) -> Boolean;
182        }
183        let ret = unsafe { CFFileSecuritySetGroup(self, group) };
184        ret != 0
185    }
186
187    /// # Safety
188    ///
189    /// `mode` must be a valid pointer.
190    #[doc(alias = "CFFileSecurityGetMode")]
191    #[cfg(feature = "libc")]
192    #[inline]
193    pub unsafe fn mode(&self, mode: *mut libc::mode_t) -> bool {
194        extern "C-unwind" {
195            fn CFFileSecurityGetMode(file_sec: &CFFileSecurity, mode: *mut libc::mode_t)
196                -> Boolean;
197        }
198        let ret = unsafe { CFFileSecurityGetMode(self, mode) };
199        ret != 0
200    }
201
202    #[doc(alias = "CFFileSecuritySetMode")]
203    #[cfg(feature = "libc")]
204    #[inline]
205    pub fn set_mode(&self, mode: libc::mode_t) -> bool {
206        extern "C-unwind" {
207            fn CFFileSecuritySetMode(file_sec: &CFFileSecurity, mode: libc::mode_t) -> Boolean;
208        }
209        let ret = unsafe { CFFileSecuritySetMode(self, mode) };
210        ret != 0
211    }
212}
213
214/// [Apple's documentation](https://developer.apple.com/documentation/corefoundation/cffilesecurityclearoptions?language=objc)
215// NS_OPTIONS
216#[repr(transparent)]
217#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
218pub struct CFFileSecurityClearOptions(pub CFOptionFlags);
219bitflags::bitflags! {
220    impl CFFileSecurityClearOptions: CFOptionFlags {
221        #[doc(alias = "kCFFileSecurityClearOwner")]
222        const Owner = 1<<0;
223        #[doc(alias = "kCFFileSecurityClearGroup")]
224        const Group = 1<<1;
225        #[doc(alias = "kCFFileSecurityClearMode")]
226        const Mode = 1<<2;
227        #[doc(alias = "kCFFileSecurityClearOwnerUUID")]
228        const OwnerUUID = 1<<3;
229        #[doc(alias = "kCFFileSecurityClearGroupUUID")]
230        const GroupUUID = 1<<4;
231        #[doc(alias = "kCFFileSecurityClearAccessControlList")]
232        const AccessControlList = 1<<5;
233    }
234}
235
236#[cfg(feature = "objc2")]
237unsafe impl Encode for CFFileSecurityClearOptions {
238    const ENCODING: Encoding = CFOptionFlags::ENCODING;
239}
240
241#[cfg(feature = "objc2")]
242unsafe impl RefEncode for CFFileSecurityClearOptions {
243    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
244}
245
246impl CFFileSecurity {
247    #[doc(alias = "CFFileSecurityClearProperties")]
248    #[inline]
249    pub fn clear_properties(&self, clear_property_mask: CFFileSecurityClearOptions) -> bool {
250        extern "C-unwind" {
251            fn CFFileSecurityClearProperties(
252                file_sec: &CFFileSecurity,
253                clear_property_mask: CFFileSecurityClearOptions,
254            ) -> Boolean;
255        }
256        let ret = unsafe { CFFileSecurityClearProperties(self, clear_property_mask) };
257        ret != 0
258    }
259}
260
261#[deprecated = "renamed to `CFFileSecurity::new`"]
262#[inline]
263pub extern "C-unwind" fn CFFileSecurityCreate(
264    allocator: Option<&CFAllocator>,
265) -> Option<CFRetained<CFFileSecurity>> {
266    extern "C-unwind" {
267        fn CFFileSecurityCreate(allocator: Option<&CFAllocator>)
268            -> Option<NonNull<CFFileSecurity>>;
269    }
270    let ret = unsafe { CFFileSecurityCreate(allocator) };
271    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
272}
273
274#[deprecated = "renamed to `CFFileSecurity::new_copy`"]
275#[inline]
276pub extern "C-unwind" fn CFFileSecurityCreateCopy(
277    allocator: Option<&CFAllocator>,
278    file_sec: Option<&CFFileSecurity>,
279) -> Option<CFRetained<CFFileSecurity>> {
280    extern "C-unwind" {
281        fn CFFileSecurityCreateCopy(
282            allocator: Option<&CFAllocator>,
283            file_sec: Option<&CFFileSecurity>,
284        ) -> Option<NonNull<CFFileSecurity>>;
285    }
286    let ret = unsafe { CFFileSecurityCreateCopy(allocator, file_sec) };
287    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
288}
289
290#[cfg(feature = "CFUUID")]
291#[deprecated = "renamed to `CFFileSecurity::owner_uuid`"]
292#[inline]
293pub unsafe extern "C-unwind" fn CFFileSecurityCopyOwnerUUID(
294    file_sec: &CFFileSecurity,
295    owner_uuid: *mut *const CFUUID,
296) -> bool {
297    extern "C-unwind" {
298        fn CFFileSecurityCopyOwnerUUID(
299            file_sec: &CFFileSecurity,
300            owner_uuid: *mut *const CFUUID,
301        ) -> Boolean;
302    }
303    let ret = unsafe { CFFileSecurityCopyOwnerUUID(file_sec, owner_uuid) };
304    ret != 0
305}
306
307#[cfg(feature = "CFUUID")]
308#[deprecated = "renamed to `CFFileSecurity::set_owner_uuid`"]
309#[inline]
310pub extern "C-unwind" fn CFFileSecuritySetOwnerUUID(
311    file_sec: &CFFileSecurity,
312    owner_uuid: Option<&CFUUID>,
313) -> bool {
314    extern "C-unwind" {
315        fn CFFileSecuritySetOwnerUUID(
316            file_sec: &CFFileSecurity,
317            owner_uuid: Option<&CFUUID>,
318        ) -> Boolean;
319    }
320    let ret = unsafe { CFFileSecuritySetOwnerUUID(file_sec, owner_uuid) };
321    ret != 0
322}
323
324#[cfg(feature = "CFUUID")]
325#[deprecated = "renamed to `CFFileSecurity::group_uuid`"]
326#[inline]
327pub unsafe extern "C-unwind" fn CFFileSecurityCopyGroupUUID(
328    file_sec: &CFFileSecurity,
329    group_uuid: *mut *const CFUUID,
330) -> bool {
331    extern "C-unwind" {
332        fn CFFileSecurityCopyGroupUUID(
333            file_sec: &CFFileSecurity,
334            group_uuid: *mut *const CFUUID,
335        ) -> Boolean;
336    }
337    let ret = unsafe { CFFileSecurityCopyGroupUUID(file_sec, group_uuid) };
338    ret != 0
339}
340
341#[cfg(feature = "CFUUID")]
342#[deprecated = "renamed to `CFFileSecurity::set_group_uuid`"]
343#[inline]
344pub extern "C-unwind" fn CFFileSecuritySetGroupUUID(
345    file_sec: &CFFileSecurity,
346    group_uuid: Option<&CFUUID>,
347) -> bool {
348    extern "C-unwind" {
349        fn CFFileSecuritySetGroupUUID(
350            file_sec: &CFFileSecurity,
351            group_uuid: Option<&CFUUID>,
352        ) -> Boolean;
353    }
354    let ret = unsafe { CFFileSecuritySetGroupUUID(file_sec, group_uuid) };
355    ret != 0
356}
357
358#[cfg(feature = "libc")]
359#[deprecated = "renamed to `CFFileSecurity::owner`"]
360#[inline]
361pub unsafe extern "C-unwind" fn CFFileSecurityGetOwner(
362    file_sec: &CFFileSecurity,
363    owner: *mut libc::uid_t,
364) -> bool {
365    extern "C-unwind" {
366        fn CFFileSecurityGetOwner(file_sec: &CFFileSecurity, owner: *mut libc::uid_t) -> Boolean;
367    }
368    let ret = unsafe { CFFileSecurityGetOwner(file_sec, owner) };
369    ret != 0
370}
371
372#[cfg(feature = "libc")]
373#[deprecated = "renamed to `CFFileSecurity::set_owner`"]
374#[inline]
375pub extern "C-unwind" fn CFFileSecuritySetOwner(
376    file_sec: &CFFileSecurity,
377    owner: libc::uid_t,
378) -> bool {
379    extern "C-unwind" {
380        fn CFFileSecuritySetOwner(file_sec: &CFFileSecurity, owner: libc::uid_t) -> Boolean;
381    }
382    let ret = unsafe { CFFileSecuritySetOwner(file_sec, owner) };
383    ret != 0
384}
385
386#[cfg(feature = "libc")]
387#[deprecated = "renamed to `CFFileSecurity::group`"]
388#[inline]
389pub unsafe extern "C-unwind" fn CFFileSecurityGetGroup(
390    file_sec: &CFFileSecurity,
391    group: *mut libc::gid_t,
392) -> bool {
393    extern "C-unwind" {
394        fn CFFileSecurityGetGroup(file_sec: &CFFileSecurity, group: *mut libc::gid_t) -> Boolean;
395    }
396    let ret = unsafe { CFFileSecurityGetGroup(file_sec, group) };
397    ret != 0
398}
399
400#[cfg(feature = "libc")]
401#[deprecated = "renamed to `CFFileSecurity::set_group`"]
402#[inline]
403pub extern "C-unwind" fn CFFileSecuritySetGroup(
404    file_sec: &CFFileSecurity,
405    group: libc::gid_t,
406) -> bool {
407    extern "C-unwind" {
408        fn CFFileSecuritySetGroup(file_sec: &CFFileSecurity, group: libc::gid_t) -> Boolean;
409    }
410    let ret = unsafe { CFFileSecuritySetGroup(file_sec, group) };
411    ret != 0
412}
413
414#[cfg(feature = "libc")]
415#[deprecated = "renamed to `CFFileSecurity::mode`"]
416#[inline]
417pub unsafe extern "C-unwind" fn CFFileSecurityGetMode(
418    file_sec: &CFFileSecurity,
419    mode: *mut libc::mode_t,
420) -> bool {
421    extern "C-unwind" {
422        fn CFFileSecurityGetMode(file_sec: &CFFileSecurity, mode: *mut libc::mode_t) -> Boolean;
423    }
424    let ret = unsafe { CFFileSecurityGetMode(file_sec, mode) };
425    ret != 0
426}
427
428#[cfg(feature = "libc")]
429#[deprecated = "renamed to `CFFileSecurity::set_mode`"]
430#[inline]
431pub extern "C-unwind" fn CFFileSecuritySetMode(
432    file_sec: &CFFileSecurity,
433    mode: libc::mode_t,
434) -> bool {
435    extern "C-unwind" {
436        fn CFFileSecuritySetMode(file_sec: &CFFileSecurity, mode: libc::mode_t) -> Boolean;
437    }
438    let ret = unsafe { CFFileSecuritySetMode(file_sec, mode) };
439    ret != 0
440}
441
442#[deprecated = "renamed to `CFFileSecurity::clear_properties`"]
443#[inline]
444pub extern "C-unwind" fn CFFileSecurityClearProperties(
445    file_sec: &CFFileSecurity,
446    clear_property_mask: CFFileSecurityClearOptions,
447) -> bool {
448    extern "C-unwind" {
449        fn CFFileSecurityClearProperties(
450            file_sec: &CFFileSecurity,
451            clear_property_mask: CFFileSecurityClearOptions,
452        ) -> Boolean;
453    }
454    let ret = unsafe { CFFileSecurityClearProperties(file_sec, clear_property_mask) };
455    ret != 0
456}