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