1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

// NS_TYPED_EXTENSIBLE_ENUM
pub type NSFileProviderDomainIdentifier = NSString;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSFileProviderDomainVersion;

    unsafe impl ClassType for NSFileProviderDomainVersion {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

unsafe impl NSCoding for NSFileProviderDomainVersion {}

unsafe impl NSObjectProtocol for NSFileProviderDomainVersion {}

unsafe impl NSSecureCoding for NSFileProviderDomainVersion {}

extern_methods!(
    unsafe impl NSFileProviderDomainVersion {
        #[method_id(@__retain_semantics Other next)]
        pub unsafe fn next(&self) -> Id<NSFileProviderDomainVersion>;

        #[method(compare:)]
        pub unsafe fn compare(
            &self,
            other_version: &NSFileProviderDomainVersion,
        ) -> NSComparisonResult;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl NSFileProviderDomainVersion {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);

// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFileProviderDomainTestingModes(pub NSUInteger);
impl NSFileProviderDomainTestingModes {
    pub const NSFileProviderDomainTestingModeAlwaysEnabled: Self = Self(1 << 0);
    pub const NSFileProviderDomainTestingModeInteractive: Self = Self(1 << 1);
}

unsafe impl Encode for NSFileProviderDomainTestingModes {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSFileProviderDomainTestingModes {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSFileProviderDomain;

    unsafe impl ClassType for NSFileProviderDomain {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

unsafe impl NSObjectProtocol for NSFileProviderDomain {}

extern_methods!(
    unsafe impl NSFileProviderDomain {
        #[method_id(@__retain_semantics Init initWithIdentifier:displayName:pathRelativeToDocumentStorage:)]
        pub unsafe fn initWithIdentifier_displayName_pathRelativeToDocumentStorage(
            this: Allocated<Self>,
            identifier: &NSFileProviderDomainIdentifier,
            display_name: &NSString,
            path_relative_to_document_storage: &NSString,
        ) -> Id<Self>;

        #[method_id(@__retain_semantics Init initWithIdentifier:displayName:)]
        pub unsafe fn initWithIdentifier_displayName(
            this: Allocated<Self>,
            identifier: &NSFileProviderDomainIdentifier,
            display_name: &NSString,
        ) -> Id<Self>;

        #[method_id(@__retain_semantics Other identifier)]
        pub unsafe fn identifier(&self) -> Id<NSFileProviderDomainIdentifier>;

        #[method_id(@__retain_semantics Other displayName)]
        pub unsafe fn displayName(&self) -> Id<NSString>;

        #[method_id(@__retain_semantics Other pathRelativeToDocumentStorage)]
        pub unsafe fn pathRelativeToDocumentStorage(&self) -> Id<NSString>;

        #[method(isDisconnected)]
        pub unsafe fn isDisconnected(&self) -> bool;

        #[method(userEnabled)]
        pub unsafe fn userEnabled(&self) -> bool;

        #[method(isHidden)]
        pub unsafe fn isHidden(&self) -> bool;

        #[method(setHidden:)]
        pub unsafe fn setHidden(&self, hidden: bool);

        #[method(isReplicated)]
        pub unsafe fn isReplicated(&self) -> bool;

        #[method(testingModes)]
        pub unsafe fn testingModes(&self) -> NSFileProviderDomainTestingModes;

        #[method(setTestingModes:)]
        pub unsafe fn setTestingModes(&self, testing_modes: NSFileProviderDomainTestingModes);

        #[method_id(@__retain_semantics Other backingStoreIdentity)]
        pub unsafe fn backingStoreIdentity(&self) -> Option<Id<NSData>>;

        #[method(supportsSyncingTrash)]
        pub unsafe fn supportsSyncingTrash(&self) -> bool;

        #[method(setSupportsSyncingTrash:)]
        pub unsafe fn setSupportsSyncingTrash(&self, supports_syncing_trash: bool);
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl NSFileProviderDomain {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);

extern_methods!(
    /// NSFileProviderDomain
    #[cfg(feature = "NSFileProviderExtension")]
    unsafe impl NSFileProviderExtension {
        #[method_id(@__retain_semantics Other domain)]
        pub unsafe fn domain(&self) -> Option<Id<NSFileProviderDomain>>;
    }
);

extern "C" {
    pub static NSFileProviderDomainDidChange: &'static NSNotificationName;
}