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::DynBlock<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::DynBlock<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 = *mut block2::DynBlock<
132    dyn Fn(NSItemProviderCompletionHandler, *const AnyClass, *mut NSDictionary),
133>;
134
135extern_class!(
136    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovider?language=objc)
137    #[unsafe(super(NSObject))]
138    #[derive(Debug, PartialEq, Eq, Hash)]
139    pub struct NSItemProvider;
140);
141
142#[cfg(feature = "NSObject")]
143extern_conformance!(
144    unsafe impl NSCopying for NSItemProvider {}
145);
146
147#[cfg(feature = "NSObject")]
148unsafe impl CopyingHelper for NSItemProvider {
149    type Result = Self;
150}
151
152extern_conformance!(
153    unsafe impl NSObjectProtocol for NSItemProvider {}
154);
155
156impl NSItemProvider {
157    extern_methods!(
158        #[unsafe(method(init))]
159        #[unsafe(method_family = init)]
160        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
161
162        #[cfg(all(
163            feature = "NSData",
164            feature = "NSError",
165            feature = "NSProgress",
166            feature = "NSString",
167            feature = "block2"
168        ))]
169        #[unsafe(method(registerDataRepresentationForTypeIdentifier:visibility:loadHandler:))]
170        #[unsafe(method_family = none)]
171        pub unsafe fn registerDataRepresentationForTypeIdentifier_visibility_loadHandler(
172            &self,
173            type_identifier: &NSString,
174            visibility: NSItemProviderRepresentationVisibility,
175            load_handler: &block2::DynBlock<
176                dyn Fn(
177                    NonNull<block2::DynBlock<dyn Fn(*mut NSData, *mut NSError)>>,
178                ) -> *mut NSProgress,
179            >,
180        );
181
182        #[cfg(all(
183            feature = "NSError",
184            feature = "NSProgress",
185            feature = "NSString",
186            feature = "NSURL",
187            feature = "block2"
188        ))]
189        #[unsafe(method(registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:))]
190        #[unsafe(method_family = none)]
191        pub unsafe fn registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler(
192            &self,
193            type_identifier: &NSString,
194            file_options: NSItemProviderFileOptions,
195            visibility: NSItemProviderRepresentationVisibility,
196            load_handler: &block2::DynBlock<
197                dyn Fn(
198                    NonNull<block2::DynBlock<dyn Fn(*mut NSURL, Bool, *mut NSError)>>,
199                ) -> *mut NSProgress,
200            >,
201        );
202
203        #[cfg(all(feature = "NSArray", feature = "NSString"))]
204        #[unsafe(method(registeredTypeIdentifiers))]
205        #[unsafe(method_family = none)]
206        pub unsafe fn registeredTypeIdentifiers(&self) -> Retained<NSArray<NSString>>;
207
208        #[cfg(all(feature = "NSArray", feature = "NSString"))]
209        #[unsafe(method(registeredTypeIdentifiersWithFileOptions:))]
210        #[unsafe(method_family = none)]
211        pub unsafe fn registeredTypeIdentifiersWithFileOptions(
212            &self,
213            file_options: NSItemProviderFileOptions,
214        ) -> Retained<NSArray<NSString>>;
215
216        #[cfg(feature = "NSString")]
217        #[unsafe(method(hasItemConformingToTypeIdentifier:))]
218        #[unsafe(method_family = none)]
219        pub unsafe fn hasItemConformingToTypeIdentifier(&self, type_identifier: &NSString) -> bool;
220
221        #[cfg(feature = "NSString")]
222        #[unsafe(method(hasRepresentationConformingToTypeIdentifier:fileOptions:))]
223        #[unsafe(method_family = none)]
224        pub unsafe fn hasRepresentationConformingToTypeIdentifier_fileOptions(
225            &self,
226            type_identifier: &NSString,
227            file_options: NSItemProviderFileOptions,
228        ) -> bool;
229
230        #[cfg(all(
231            feature = "NSData",
232            feature = "NSError",
233            feature = "NSProgress",
234            feature = "NSString",
235            feature = "block2"
236        ))]
237        #[unsafe(method(loadDataRepresentationForTypeIdentifier:completionHandler:))]
238        #[unsafe(method_family = none)]
239        pub unsafe fn loadDataRepresentationForTypeIdentifier_completionHandler(
240            &self,
241            type_identifier: &NSString,
242            completion_handler: &block2::DynBlock<dyn Fn(*mut NSData, *mut NSError)>,
243        ) -> Retained<NSProgress>;
244
245        #[cfg(all(
246            feature = "NSError",
247            feature = "NSProgress",
248            feature = "NSString",
249            feature = "NSURL",
250            feature = "block2"
251        ))]
252        #[unsafe(method(loadFileRepresentationForTypeIdentifier:completionHandler:))]
253        #[unsafe(method_family = none)]
254        pub unsafe fn loadFileRepresentationForTypeIdentifier_completionHandler(
255            &self,
256            type_identifier: &NSString,
257            completion_handler: &block2::DynBlock<dyn Fn(*mut NSURL, *mut NSError)>,
258        ) -> Retained<NSProgress>;
259
260        #[cfg(all(
261            feature = "NSError",
262            feature = "NSProgress",
263            feature = "NSString",
264            feature = "NSURL",
265            feature = "block2"
266        ))]
267        #[unsafe(method(loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:))]
268        #[unsafe(method_family = none)]
269        pub unsafe fn loadInPlaceFileRepresentationForTypeIdentifier_completionHandler(
270            &self,
271            type_identifier: &NSString,
272            completion_handler: &block2::DynBlock<dyn Fn(*mut NSURL, Bool, *mut NSError)>,
273        ) -> Retained<NSProgress>;
274
275        #[cfg(feature = "NSString")]
276        #[unsafe(method(suggestedName))]
277        #[unsafe(method_family = none)]
278        pub unsafe fn suggestedName(&self) -> Option<Retained<NSString>>;
279
280        #[cfg(feature = "NSString")]
281        /// Setter for [`suggestedName`][Self::suggestedName].
282        #[unsafe(method(setSuggestedName:))]
283        #[unsafe(method_family = none)]
284        pub unsafe fn setSuggestedName(&self, suggested_name: Option<&NSString>);
285
286        #[unsafe(method(initWithObject:))]
287        #[unsafe(method_family = init)]
288        pub unsafe fn initWithObject(
289            this: Allocated<Self>,
290            object: &ProtocolObject<dyn NSItemProviderWriting>,
291        ) -> Retained<Self>;
292
293        #[unsafe(method(registerObject:visibility:))]
294        #[unsafe(method_family = none)]
295        pub unsafe fn registerObject_visibility(
296            &self,
297            object: &ProtocolObject<dyn NSItemProviderWriting>,
298            visibility: NSItemProviderRepresentationVisibility,
299        );
300
301        #[cfg(all(feature = "NSObject", feature = "NSString"))]
302        #[unsafe(method(initWithItem:typeIdentifier:))]
303        #[unsafe(method_family = init)]
304        pub unsafe fn initWithItem_typeIdentifier(
305            this: Allocated<Self>,
306            item: Option<&ProtocolObject<dyn NSSecureCoding>>,
307            type_identifier: Option<&NSString>,
308        ) -> Retained<Self>;
309
310        #[cfg(feature = "NSURL")]
311        #[unsafe(method(initWithContentsOfURL:))]
312        #[unsafe(method_family = init)]
313        pub unsafe fn initWithContentsOfURL(
314            this: Allocated<Self>,
315            file_url: Option<&NSURL>,
316        ) -> Option<Retained<Self>>;
317
318        #[cfg(all(
319            feature = "NSDictionary",
320            feature = "NSError",
321            feature = "NSObject",
322            feature = "NSString",
323            feature = "block2"
324        ))]
325        #[unsafe(method(registerItemForTypeIdentifier:loadHandler:))]
326        #[unsafe(method_family = none)]
327        pub unsafe fn registerItemForTypeIdentifier_loadHandler(
328            &self,
329            type_identifier: &NSString,
330            load_handler: NSItemProviderLoadHandler,
331        );
332
333        #[cfg(all(
334            feature = "NSDictionary",
335            feature = "NSError",
336            feature = "NSObject",
337            feature = "NSString",
338            feature = "block2"
339        ))]
340        #[unsafe(method(loadItemForTypeIdentifier:options:completionHandler:))]
341        #[unsafe(method_family = none)]
342        pub unsafe fn loadItemForTypeIdentifier_options_completionHandler(
343            &self,
344            type_identifier: &NSString,
345            options: Option<&NSDictionary>,
346            completion_handler: NSItemProviderCompletionHandler,
347        );
348    );
349}
350
351/// Methods declared on superclass `NSObject`.
352impl NSItemProvider {
353    extern_methods!(
354        #[unsafe(method(new))]
355        #[unsafe(method_family = new)]
356        pub unsafe fn new() -> Retained<Self>;
357    );
358}
359
360extern "C" {
361    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderpreferredimagesizekey?language=objc)
362    #[cfg(feature = "NSString")]
363    pub static NSItemProviderPreferredImageSizeKey: &'static NSString;
364}
365
366/// NSPreviewSupport.
367impl NSItemProvider {
368    extern_methods!(
369        #[cfg(all(
370            feature = "NSDictionary",
371            feature = "NSError",
372            feature = "NSObject",
373            feature = "block2"
374        ))]
375        #[unsafe(method(previewImageHandler))]
376        #[unsafe(method_family = none)]
377        pub unsafe fn previewImageHandler(&self) -> NSItemProviderLoadHandler;
378
379        #[cfg(all(
380            feature = "NSDictionary",
381            feature = "NSError",
382            feature = "NSObject",
383            feature = "block2"
384        ))]
385        /// Setter for [`previewImageHandler`][Self::previewImageHandler].
386        #[unsafe(method(setPreviewImageHandler:))]
387        #[unsafe(method_family = none)]
388        pub unsafe fn setPreviewImageHandler(
389            &self,
390            preview_image_handler: NSItemProviderLoadHandler,
391        );
392
393        #[cfg(all(
394            feature = "NSDictionary",
395            feature = "NSError",
396            feature = "NSObject",
397            feature = "block2"
398        ))]
399        #[unsafe(method(loadPreviewImageWithOptions:completionHandler:))]
400        #[unsafe(method_family = none)]
401        pub unsafe fn loadPreviewImageWithOptions_completionHandler(
402            &self,
403            options: Option<&NSDictionary>,
404            completion_handler: NSItemProviderCompletionHandler,
405        );
406    );
407}
408
409extern "C" {
410    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptpreprocessingresultskey?language=objc)
411    #[cfg(feature = "NSString")]
412    pub static NSExtensionJavaScriptPreprocessingResultsKey: Option<&'static NSString>;
413}
414
415extern "C" {
416    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptfinalizeargumentkey?language=objc)
417    #[cfg(feature = "NSString")]
418    pub static NSExtensionJavaScriptFinalizeArgumentKey: Option<&'static NSString>;
419}
420
421extern "C" {
422    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrordomain?language=objc)
423    #[cfg(feature = "NSString")]
424    pub static NSItemProviderErrorDomain: &'static NSString;
425}
426
427/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrorcode?language=objc)
428// NS_ENUM
429#[repr(transparent)]
430#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
431pub struct NSItemProviderErrorCode(pub NSInteger);
432impl NSItemProviderErrorCode {
433    #[doc(alias = "NSItemProviderUnknownError")]
434    pub const UnknownError: Self = Self(-1);
435    #[doc(alias = "NSItemProviderItemUnavailableError")]
436    pub const ItemUnavailableError: Self = Self(-1000);
437    #[doc(alias = "NSItemProviderUnexpectedValueClassError")]
438    pub const UnexpectedValueClassError: Self = Self(-1100);
439    #[doc(alias = "NSItemProviderUnavailableCoercionError")]
440    pub const UnavailableCoercionError: Self = Self(-1200);
441}
442
443unsafe impl Encode for NSItemProviderErrorCode {
444    const ENCODING: Encoding = NSInteger::ENCODING;
445}
446
447unsafe impl RefEncode for NSItemProviderErrorCode {
448    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
449}