sysdir/
sys.rs

1// @generated
2//
3// src/sys.rs
4//
5// Copyright (c) 2023 Ryan Lopopolo <rjl@hyperbo.la>
6//
7// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE> or
8// <http://www.apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT>
9// or <http://opensource.org/licenses/MIT>, at your option. All files in the
10// project carrying such notice may not be copied, modified, or distributed
11// except according to those terms.
12
13/* automatically generated by rust-bindgen 0.69.4 */
14
15pub const PATH_MAX: u32 = 1024;
16#[repr(u32)]
17#[non_exhaustive]
18#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
19pub enum sysdir_search_path_directory_t {
20    SYSDIR_DIRECTORY_APPLICATION = 1,
21    SYSDIR_DIRECTORY_DEMO_APPLICATION = 2,
22    SYSDIR_DIRECTORY_DEVELOPER_APPLICATION = 3,
23    SYSDIR_DIRECTORY_ADMIN_APPLICATION = 4,
24    SYSDIR_DIRECTORY_LIBRARY = 5,
25    SYSDIR_DIRECTORY_DEVELOPER = 6,
26    SYSDIR_DIRECTORY_USER = 7,
27    SYSDIR_DIRECTORY_DOCUMENTATION = 8,
28    SYSDIR_DIRECTORY_DOCUMENT = 9,
29    SYSDIR_DIRECTORY_CORESERVICE = 10,
30    SYSDIR_DIRECTORY_AUTOSAVED_INFORMATION = 11,
31    SYSDIR_DIRECTORY_DESKTOP = 12,
32    SYSDIR_DIRECTORY_CACHES = 13,
33    SYSDIR_DIRECTORY_APPLICATION_SUPPORT = 14,
34    SYSDIR_DIRECTORY_DOWNLOADS = 15,
35    SYSDIR_DIRECTORY_INPUT_METHODS = 16,
36    SYSDIR_DIRECTORY_MOVIES = 17,
37    SYSDIR_DIRECTORY_MUSIC = 18,
38    SYSDIR_DIRECTORY_PICTURES = 19,
39    SYSDIR_DIRECTORY_PRINTER_DESCRIPTION = 20,
40    SYSDIR_DIRECTORY_SHARED_PUBLIC = 21,
41    SYSDIR_DIRECTORY_PREFERENCE_PANES = 22,
42    SYSDIR_DIRECTORY_ALL_APPLICATIONS = 100,
43    SYSDIR_DIRECTORY_ALL_LIBRARIES = 101,
44}
45pub const SYSDIR_DOMAIN_MASK_USER: sysdir_search_path_domain_mask_t = 1;
46pub const SYSDIR_DOMAIN_MASK_LOCAL: sysdir_search_path_domain_mask_t = 2;
47pub const SYSDIR_DOMAIN_MASK_NETWORK: sysdir_search_path_domain_mask_t = 4;
48pub const SYSDIR_DOMAIN_MASK_SYSTEM: sysdir_search_path_domain_mask_t = 8;
49pub const SYSDIR_DOMAIN_MASK_ALL: sysdir_search_path_domain_mask_t = 65535;
50pub type sysdir_search_path_domain_mask_t = ::core::ffi::c_uint;
51extern "C" {
52    pub fn sysdir_start_search_path_enumeration(
53        dir: sysdir_search_path_directory_t,
54        domainMask: sysdir_search_path_domain_mask_t,
55    ) -> sysdir_search_path_enumeration_state;
56}
57extern "C" {
58    pub fn sysdir_get_next_search_path_enumeration(
59        state: sysdir_search_path_enumeration_state,
60        path: *mut ::core::ffi::c_char,
61    ) -> sysdir_search_path_enumeration_state;
62}
63
64/// Opaque type for holding sysdir enumeration state.
65#[repr(transparent)]
66#[derive(Debug)]
67#[allow(missing_copy_implementations)]
68pub struct sysdir_search_path_enumeration_state(::core::ffi::c_uint);
69
70impl PartialEq<::core::ffi::c_uint> for sysdir_search_path_enumeration_state {
71    fn eq(&self, other: &::core::ffi::c_uint) -> bool {
72        self.0 == *other
73    }
74}
75
76impl sysdir_search_path_enumeration_state {
77    /// Return true if the state indicates the enumeration is finished.
78    #[must_use]
79    pub fn is_finished(&self) -> bool {
80        self.0 == 0
81    }
82}