objc2_foundation/generated/
NSItemProvider.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderrepresentationvisibility?language=objc)
10// NS_ENUM
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct NSItemProviderRepresentationVisibility(pub NSInteger);
14impl NSItemProviderRepresentationVisibility {
15    #[doc(alias = "NSItemProviderRepresentationVisibilityAll")]
16    pub const All: Self = Self(0);
17    #[doc(alias = "NSItemProviderRepresentationVisibilityTeam")]
18    pub const Team: Self = Self(1);
19    #[doc(alias = "NSItemProviderRepresentationVisibilityGroup")]
20    pub const Group: Self = Self(2);
21    #[doc(alias = "NSItemProviderRepresentationVisibilityOwnProcess")]
22    pub const OwnProcess: Self = Self(3);
23}
24
25unsafe impl Encode for NSItemProviderRepresentationVisibility {
26    const ENCODING: Encoding = NSInteger::ENCODING;
27}
28
29unsafe impl RefEncode for NSItemProviderRepresentationVisibility {
30    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
31}
32
33/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderfileoptions?language=objc)
34// NS_OPTIONS
35#[repr(transparent)]
36#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
37pub struct NSItemProviderFileOptions(pub NSInteger);
38bitflags::bitflags! {
39    impl NSItemProviderFileOptions: NSInteger {
40        #[doc(alias = "NSItemProviderFileOptionOpenInPlace")]
41        const OpenInPlace = 1;
42    }
43}
44
45unsafe impl Encode for NSItemProviderFileOptions {
46    const ENCODING: Encoding = NSInteger::ENCODING;
47}
48
49unsafe impl RefEncode for NSItemProviderFileOptions {
50    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
51}
52
53extern_protocol!(
54    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderwriting?language=objc)
55    pub unsafe trait NSItemProviderWriting: NSObjectProtocol {
56        #[cfg(all(feature = "NSArray", feature = "NSString"))]
57        #[unsafe(method(writableTypeIdentifiersForItemProvider))]
58        #[unsafe(method_family = none)]
59        unsafe fn writableTypeIdentifiersForItemProvider_class() -> Retained<NSArray<NSString>>;
60
61        #[cfg(all(feature = "NSArray", feature = "NSString"))]
62        #[optional]
63        #[unsafe(method(writableTypeIdentifiersForItemProvider))]
64        #[unsafe(method_family = none)]
65        unsafe fn writableTypeIdentifiersForItemProvider(&self) -> Retained<NSArray<NSString>>;
66
67        #[cfg(feature = "NSString")]
68        #[optional]
69        #[unsafe(method(itemProviderVisibilityForRepresentationWithTypeIdentifier:))]
70        #[unsafe(method_family = none)]
71        unsafe fn itemProviderVisibilityForRepresentationWithTypeIdentifier_class(
72            type_identifier: &NSString,
73        ) -> NSItemProviderRepresentationVisibility;
74
75        #[cfg(feature = "NSString")]
76        #[optional]
77        #[unsafe(method(itemProviderVisibilityForRepresentationWithTypeIdentifier:))]
78        #[unsafe(method_family = none)]
79        unsafe fn itemProviderVisibilityForRepresentationWithTypeIdentifier(
80            &self,
81            type_identifier: &NSString,
82        ) -> NSItemProviderRepresentationVisibility;
83
84        #[cfg(all(
85            feature = "NSData",
86            feature = "NSError",
87            feature = "NSProgress",
88            feature = "NSString",
89            feature = "block2"
90        ))]
91        #[unsafe(method(loadDataWithTypeIdentifier:forItemProviderCompletionHandler:))]
92        #[unsafe(method_family = none)]
93        unsafe fn loadDataWithTypeIdentifier_forItemProviderCompletionHandler(
94            &self,
95            type_identifier: &NSString,
96            completion_handler: &block2::Block<dyn Fn(*mut NSData, *mut NSError)>,
97        ) -> Option<Retained<NSProgress>>;
98    }
99);
100
101extern_protocol!(
102    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderreading?language=objc)
103    pub unsafe trait NSItemProviderReading: NSObjectProtocol {
104        #[cfg(all(feature = "NSArray", feature = "NSString"))]
105        #[unsafe(method(readableTypeIdentifiersForItemProvider))]
106        #[unsafe(method_family = none)]
107        unsafe fn readableTypeIdentifiersForItemProvider() -> Retained<NSArray<NSString>>;
108
109        #[cfg(all(feature = "NSData", feature = "NSError", feature = "NSString"))]
110        #[unsafe(method(objectWithItemProviderData:typeIdentifier:error:_))]
111        #[unsafe(method_family = none)]
112        unsafe fn objectWithItemProviderData_typeIdentifier_error(
113            data: &NSData,
114            type_identifier: &NSString,
115        ) -> Result<Retained<Self>, Retained<NSError>>;
116    }
117);
118
119/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidercompletionhandler?language=objc)
120#[cfg(all(feature = "NSError", feature = "NSObject", feature = "block2"))]
121pub type NSItemProviderCompletionHandler =
122    *mut block2::Block<dyn Fn(*mut ProtocolObject<dyn NSSecureCoding>, *mut NSError)>;
123
124/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderloadhandler?language=objc)
125#[cfg(all(
126    feature = "NSDictionary",
127    feature = "NSError",
128    feature = "NSObject",
129    feature = "block2"
130))]
131pub type NSItemProviderLoadHandler =
132    *mut block2::Block<dyn Fn(NSItemProviderCompletionHandler, *const AnyClass, *mut NSDictionary)>;
133
134extern_class!(
135    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovider?language=objc)
136    #[unsafe(super(NSObject))]
137    #[derive(Debug, PartialEq, Eq, Hash)]
138    pub struct NSItemProvider;
139);
140
141#[cfg(feature = "NSObject")]
142unsafe impl NSCopying for NSItemProvider {}
143
144#[cfg(feature = "NSObject")]
145unsafe impl CopyingHelper for NSItemProvider {
146    type Result = Self;
147}
148
149unsafe impl NSObjectProtocol for NSItemProvider {}
150
151impl NSItemProvider {
152    extern_methods!(
153        #[unsafe(method(init))]
154        #[unsafe(method_family = init)]
155        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
156
157        #[cfg(all(
158            feature = "NSData",
159            feature = "NSError",
160            feature = "NSProgress",
161            feature = "NSString",
162            feature = "block2"
163        ))]
164        #[unsafe(method(registerDataRepresentationForTypeIdentifier:visibility:loadHandler:))]
165        #[unsafe(method_family = none)]
166        pub unsafe fn registerDataRepresentationForTypeIdentifier_visibility_loadHandler(
167            &self,
168            type_identifier: &NSString,
169            visibility: NSItemProviderRepresentationVisibility,
170            load_handler: &block2::Block<
171                dyn Fn(
172                    NonNull<block2::Block<dyn Fn(*mut NSData, *mut NSError)>>,
173                ) -> *mut NSProgress,
174            >,
175        );
176
177        #[cfg(all(
178            feature = "NSError",
179            feature = "NSProgress",
180            feature = "NSString",
181            feature = "NSURL",
182            feature = "block2"
183        ))]
184        #[unsafe(method(registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:))]
185        #[unsafe(method_family = none)]
186        pub unsafe fn registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler(
187            &self,
188            type_identifier: &NSString,
189            file_options: NSItemProviderFileOptions,
190            visibility: NSItemProviderRepresentationVisibility,
191            load_handler: &block2::Block<
192                dyn Fn(
193                    NonNull<block2::Block<dyn Fn(*mut NSURL, Bool, *mut NSError)>>,
194                ) -> *mut NSProgress,
195            >,
196        );
197
198        #[cfg(all(feature = "NSArray", feature = "NSString"))]
199        #[unsafe(method(registeredTypeIdentifiers))]
200        #[unsafe(method_family = none)]
201        pub unsafe fn registeredTypeIdentifiers(&self) -> Retained<NSArray<NSString>>;
202
203        #[cfg(all(feature = "NSArray", feature = "NSString"))]
204        #[unsafe(method(registeredTypeIdentifiersWithFileOptions:))]
205        #[unsafe(method_family = none)]
206        pub unsafe fn registeredTypeIdentifiersWithFileOptions(
207            &self,
208            file_options: NSItemProviderFileOptions,
209        ) -> Retained<NSArray<NSString>>;
210
211        #[cfg(feature = "NSString")]
212        #[unsafe(method(hasItemConformingToTypeIdentifier:))]
213        #[unsafe(method_family = none)]
214        pub unsafe fn hasItemConformingToTypeIdentifier(&self, type_identifier: &NSString) -> bool;
215
216        #[cfg(feature = "NSString")]
217        #[unsafe(method(hasRepresentationConformingToTypeIdentifier:fileOptions:))]
218        #[unsafe(method_family = none)]
219        pub unsafe fn hasRepresentationConformingToTypeIdentifier_fileOptions(
220            &self,
221            type_identifier: &NSString,
222            file_options: NSItemProviderFileOptions,
223        ) -> bool;
224
225        #[cfg(all(
226            feature = "NSData",
227            feature = "NSError",
228            feature = "NSProgress",
229            feature = "NSString",
230            feature = "block2"
231        ))]
232        #[unsafe(method(loadDataRepresentationForTypeIdentifier:completionHandler:))]
233        #[unsafe(method_family = none)]
234        pub unsafe fn loadDataRepresentationForTypeIdentifier_completionHandler(
235            &self,
236            type_identifier: &NSString,
237            completion_handler: &block2::Block<dyn Fn(*mut NSData, *mut NSError)>,
238        ) -> Retained<NSProgress>;
239
240        #[cfg(all(
241            feature = "NSError",
242            feature = "NSProgress",
243            feature = "NSString",
244            feature = "NSURL",
245            feature = "block2"
246        ))]
247        #[unsafe(method(loadFileRepresentationForTypeIdentifier:completionHandler:))]
248        #[unsafe(method_family = none)]
249        pub unsafe fn loadFileRepresentationForTypeIdentifier_completionHandler(
250            &self,
251            type_identifier: &NSString,
252            completion_handler: &block2::Block<dyn Fn(*mut NSURL, *mut NSError)>,
253        ) -> Retained<NSProgress>;
254
255        #[cfg(all(
256            feature = "NSError",
257            feature = "NSProgress",
258            feature = "NSString",
259            feature = "NSURL",
260            feature = "block2"
261        ))]
262        #[unsafe(method(loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:))]
263        #[unsafe(method_family = none)]
264        pub unsafe fn loadInPlaceFileRepresentationForTypeIdentifier_completionHandler(
265            &self,
266            type_identifier: &NSString,
267            completion_handler: &block2::Block<dyn Fn(*mut NSURL, Bool, *mut NSError)>,
268        ) -> Retained<NSProgress>;
269
270        #[cfg(feature = "NSString")]
271        #[unsafe(method(suggestedName))]
272        #[unsafe(method_family = none)]
273        pub unsafe fn suggestedName(&self) -> Option<Retained<NSString>>;
274
275        #[cfg(feature = "NSString")]
276        /// Setter for [`suggestedName`][Self::suggestedName].
277        #[unsafe(method(setSuggestedName:))]
278        #[unsafe(method_family = none)]
279        pub unsafe fn setSuggestedName(&self, suggested_name: Option<&NSString>);
280
281        #[unsafe(method(initWithObject:))]
282        #[unsafe(method_family = init)]
283        pub unsafe fn initWithObject(
284            this: Allocated<Self>,
285            object: &ProtocolObject<dyn NSItemProviderWriting>,
286        ) -> Retained<Self>;
287
288        #[unsafe(method(registerObject:visibility:))]
289        #[unsafe(method_family = none)]
290        pub unsafe fn registerObject_visibility(
291            &self,
292            object: &ProtocolObject<dyn NSItemProviderWriting>,
293            visibility: NSItemProviderRepresentationVisibility,
294        );
295
296        #[cfg(all(feature = "NSObject", feature = "NSString"))]
297        #[unsafe(method(initWithItem:typeIdentifier:))]
298        #[unsafe(method_family = init)]
299        pub unsafe fn initWithItem_typeIdentifier(
300            this: Allocated<Self>,
301            item: Option<&ProtocolObject<dyn NSSecureCoding>>,
302            type_identifier: Option<&NSString>,
303        ) -> Retained<Self>;
304
305        #[cfg(feature = "NSURL")]
306        #[unsafe(method(initWithContentsOfURL:))]
307        #[unsafe(method_family = init)]
308        pub unsafe fn initWithContentsOfURL(
309            this: Allocated<Self>,
310            file_url: Option<&NSURL>,
311        ) -> Option<Retained<Self>>;
312
313        #[cfg(all(
314            feature = "NSDictionary",
315            feature = "NSError",
316            feature = "NSObject",
317            feature = "NSString",
318            feature = "block2"
319        ))]
320        #[unsafe(method(registerItemForTypeIdentifier:loadHandler:))]
321        #[unsafe(method_family = none)]
322        pub unsafe fn registerItemForTypeIdentifier_loadHandler(
323            &self,
324            type_identifier: &NSString,
325            load_handler: NSItemProviderLoadHandler,
326        );
327
328        #[cfg(all(
329            feature = "NSDictionary",
330            feature = "NSError",
331            feature = "NSObject",
332            feature = "NSString",
333            feature = "block2"
334        ))]
335        #[unsafe(method(loadItemForTypeIdentifier:options:completionHandler:))]
336        #[unsafe(method_family = none)]
337        pub unsafe fn loadItemForTypeIdentifier_options_completionHandler(
338            &self,
339            type_identifier: &NSString,
340            options: Option<&NSDictionary>,
341            completion_handler: NSItemProviderCompletionHandler,
342        );
343    );
344}
345
346/// Methods declared on superclass `NSObject`.
347impl NSItemProvider {
348    extern_methods!(
349        #[unsafe(method(new))]
350        #[unsafe(method_family = new)]
351        pub unsafe fn new() -> Retained<Self>;
352    );
353}
354
355extern "C" {
356    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderpreferredimagesizekey?language=objc)
357    #[cfg(feature = "NSString")]
358    pub static NSItemProviderPreferredImageSizeKey: &'static NSString;
359}
360
361/// NSPreviewSupport.
362impl NSItemProvider {
363    extern_methods!(
364        #[cfg(all(
365            feature = "NSDictionary",
366            feature = "NSError",
367            feature = "NSObject",
368            feature = "block2"
369        ))]
370        #[unsafe(method(previewImageHandler))]
371        #[unsafe(method_family = none)]
372        pub unsafe fn previewImageHandler(&self) -> NSItemProviderLoadHandler;
373
374        #[cfg(all(
375            feature = "NSDictionary",
376            feature = "NSError",
377            feature = "NSObject",
378            feature = "block2"
379        ))]
380        /// Setter for [`previewImageHandler`][Self::previewImageHandler].
381        #[unsafe(method(setPreviewImageHandler:))]
382        #[unsafe(method_family = none)]
383        pub unsafe fn setPreviewImageHandler(
384            &self,
385            preview_image_handler: NSItemProviderLoadHandler,
386        );
387
388        #[cfg(all(
389            feature = "NSDictionary",
390            feature = "NSError",
391            feature = "NSObject",
392            feature = "block2"
393        ))]
394        #[unsafe(method(loadPreviewImageWithOptions:completionHandler:))]
395        #[unsafe(method_family = none)]
396        pub unsafe fn loadPreviewImageWithOptions_completionHandler(
397            &self,
398            options: Option<&NSDictionary>,
399            completion_handler: NSItemProviderCompletionHandler,
400        );
401    );
402}
403
404extern "C" {
405    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptpreprocessingresultskey?language=objc)
406    #[cfg(feature = "NSString")]
407    pub static NSExtensionJavaScriptPreprocessingResultsKey: Option<&'static NSString>;
408}
409
410extern "C" {
411    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptfinalizeargumentkey?language=objc)
412    #[cfg(feature = "NSString")]
413    pub static NSExtensionJavaScriptFinalizeArgumentKey: Option<&'static NSString>;
414}
415
416extern "C" {
417    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrordomain?language=objc)
418    #[cfg(feature = "NSString")]
419    pub static NSItemProviderErrorDomain: &'static NSString;
420}
421
422/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrorcode?language=objc)
423// NS_ENUM
424#[repr(transparent)]
425#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
426pub struct NSItemProviderErrorCode(pub NSInteger);
427impl NSItemProviderErrorCode {
428    #[doc(alias = "NSItemProviderUnknownError")]
429    pub const UnknownError: Self = Self(-1);
430    #[doc(alias = "NSItemProviderItemUnavailableError")]
431    pub const ItemUnavailableError: Self = Self(-1000);
432    #[doc(alias = "NSItemProviderUnexpectedValueClassError")]
433    pub const UnexpectedValueClassError: Self = Self(-1100);
434    #[doc(alias = "NSItemProviderUnavailableCoercionError")]
435    pub const UnavailableCoercionError: Self = Self(-1200);
436}
437
438unsafe impl Encode for NSItemProviderErrorCode {
439    const ENCODING: Encoding = NSInteger::ENCODING;
440}
441
442unsafe impl RefEncode for NSItemProviderErrorCode {
443    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
444}