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        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        fn writableTypeIdentifiersForItemProvider(&self) -> Retained<NSArray<NSString>>;
66
67        #[cfg(feature = "NSString")]
68        #[optional]
69        #[unsafe(method(itemProviderVisibilityForRepresentationWithTypeIdentifier:))]
70        #[unsafe(method_family = none)]
71        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        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        /// # Safety
92        ///
93        /// `completion_handler` block must be sendable.
94        #[unsafe(method(loadDataWithTypeIdentifier:forItemProviderCompletionHandler:))]
95        #[unsafe(method_family = none)]
96        unsafe fn loadDataWithTypeIdentifier_forItemProviderCompletionHandler(
97            &self,
98            type_identifier: &NSString,
99            completion_handler: &block2::DynBlock<dyn Fn(*mut NSData, *mut NSError)>,
100        ) -> Option<Retained<NSProgress>>;
101    }
102);
103
104extern_protocol!(
105    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderreading?language=objc)
106    pub unsafe trait NSItemProviderReading: NSObjectProtocol {
107        #[cfg(all(feature = "NSArray", feature = "NSString"))]
108        #[unsafe(method(readableTypeIdentifiersForItemProvider))]
109        #[unsafe(method_family = none)]
110        fn readableTypeIdentifiersForItemProvider() -> Retained<NSArray<NSString>>;
111
112        #[cfg(all(feature = "NSData", feature = "NSError", feature = "NSString"))]
113        #[unsafe(method(objectWithItemProviderData:typeIdentifier:error:_))]
114        #[unsafe(method_family = none)]
115        fn objectWithItemProviderData_typeIdentifier_error(
116            data: &NSData,
117            type_identifier: &NSString,
118        ) -> Result<Retained<Self>, Retained<NSError>>;
119    }
120);
121
122/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidercompletionhandler?language=objc)
123#[cfg(all(feature = "NSError", feature = "NSObject", feature = "block2"))]
124pub type NSItemProviderCompletionHandler =
125    *mut block2::DynBlock<dyn Fn(*mut ProtocolObject<dyn NSSecureCoding>, *mut NSError)>;
126
127/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderloadhandler?language=objc)
128#[cfg(all(
129    feature = "NSDictionary",
130    feature = "NSError",
131    feature = "NSObject",
132    feature = "block2"
133))]
134pub type NSItemProviderLoadHandler = *mut block2::DynBlock<
135    dyn Fn(NSItemProviderCompletionHandler, *const AnyClass, *mut NSDictionary),
136>;
137
138extern_class!(
139    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovider?language=objc)
140    #[unsafe(super(NSObject))]
141    #[derive(Debug, PartialEq, Eq, Hash)]
142    pub struct NSItemProvider;
143);
144
145#[cfg(feature = "NSObject")]
146extern_conformance!(
147    unsafe impl NSCopying for NSItemProvider {}
148);
149
150#[cfg(feature = "NSObject")]
151unsafe impl CopyingHelper for NSItemProvider {
152    type Result = Self;
153}
154
155extern_conformance!(
156    unsafe impl NSObjectProtocol for NSItemProvider {}
157);
158
159impl NSItemProvider {
160    extern_methods!(
161        #[unsafe(method(init))]
162        #[unsafe(method_family = init)]
163        pub fn init(this: Allocated<Self>) -> Retained<Self>;
164
165        #[cfg(all(
166            feature = "NSData",
167            feature = "NSError",
168            feature = "NSProgress",
169            feature = "NSString",
170            feature = "block2"
171        ))]
172        /// # Safety
173        ///
174        /// `load_handler` block must be sendable.
175        #[unsafe(method(registerDataRepresentationForTypeIdentifier:visibility:loadHandler:))]
176        #[unsafe(method_family = none)]
177        pub unsafe fn registerDataRepresentationForTypeIdentifier_visibility_loadHandler(
178            &self,
179            type_identifier: &NSString,
180            visibility: NSItemProviderRepresentationVisibility,
181            load_handler: &block2::DynBlock<
182                dyn Fn(
183                    NonNull<block2::DynBlock<dyn Fn(*mut NSData, *mut NSError)>>,
184                ) -> *mut NSProgress,
185            >,
186        );
187
188        #[cfg(all(
189            feature = "NSError",
190            feature = "NSProgress",
191            feature = "NSString",
192            feature = "NSURL",
193            feature = "block2"
194        ))]
195        /// # Safety
196        ///
197        /// `load_handler` block must be sendable.
198        #[unsafe(method(registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:))]
199        #[unsafe(method_family = none)]
200        pub unsafe fn registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler(
201            &self,
202            type_identifier: &NSString,
203            file_options: NSItemProviderFileOptions,
204            visibility: NSItemProviderRepresentationVisibility,
205            load_handler: &block2::DynBlock<
206                dyn Fn(
207                    NonNull<block2::DynBlock<dyn Fn(*mut NSURL, Bool, *mut NSError)>>,
208                ) -> *mut NSProgress,
209            >,
210        );
211
212        #[cfg(all(feature = "NSArray", feature = "NSString"))]
213        #[unsafe(method(registeredTypeIdentifiers))]
214        #[unsafe(method_family = none)]
215        pub fn registeredTypeIdentifiers(&self) -> Retained<NSArray<NSString>>;
216
217        #[cfg(all(feature = "NSArray", feature = "NSString"))]
218        #[unsafe(method(registeredTypeIdentifiersWithFileOptions:))]
219        #[unsafe(method_family = none)]
220        pub fn registeredTypeIdentifiersWithFileOptions(
221            &self,
222            file_options: NSItemProviderFileOptions,
223        ) -> Retained<NSArray<NSString>>;
224
225        #[cfg(feature = "NSString")]
226        #[unsafe(method(hasItemConformingToTypeIdentifier:))]
227        #[unsafe(method_family = none)]
228        pub fn hasItemConformingToTypeIdentifier(&self, type_identifier: &NSString) -> bool;
229
230        #[cfg(feature = "NSString")]
231        #[unsafe(method(hasRepresentationConformingToTypeIdentifier:fileOptions:))]
232        #[unsafe(method_family = none)]
233        pub fn hasRepresentationConformingToTypeIdentifier_fileOptions(
234            &self,
235            type_identifier: &NSString,
236            file_options: NSItemProviderFileOptions,
237        ) -> bool;
238
239        #[cfg(all(
240            feature = "NSData",
241            feature = "NSError",
242            feature = "NSProgress",
243            feature = "NSString",
244            feature = "block2"
245        ))]
246        /// # Safety
247        ///
248        /// `completion_handler` block must be sendable.
249        #[unsafe(method(loadDataRepresentationForTypeIdentifier:completionHandler:))]
250        #[unsafe(method_family = none)]
251        pub unsafe fn loadDataRepresentationForTypeIdentifier_completionHandler(
252            &self,
253            type_identifier: &NSString,
254            completion_handler: &block2::DynBlock<dyn Fn(*mut NSData, *mut NSError)>,
255        ) -> Retained<NSProgress>;
256
257        #[cfg(all(
258            feature = "NSError",
259            feature = "NSProgress",
260            feature = "NSString",
261            feature = "NSURL",
262            feature = "block2"
263        ))]
264        /// # Safety
265        ///
266        /// `completion_handler` block must be sendable.
267        #[unsafe(method(loadFileRepresentationForTypeIdentifier:completionHandler:))]
268        #[unsafe(method_family = none)]
269        pub unsafe fn loadFileRepresentationForTypeIdentifier_completionHandler(
270            &self,
271            type_identifier: &NSString,
272            completion_handler: &block2::DynBlock<dyn Fn(*mut NSURL, *mut NSError)>,
273        ) -> Retained<NSProgress>;
274
275        #[cfg(all(
276            feature = "NSError",
277            feature = "NSProgress",
278            feature = "NSString",
279            feature = "NSURL",
280            feature = "block2"
281        ))]
282        /// # Safety
283        ///
284        /// `completion_handler` block must be sendable.
285        #[unsafe(method(loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:))]
286        #[unsafe(method_family = none)]
287        pub unsafe fn loadInPlaceFileRepresentationForTypeIdentifier_completionHandler(
288            &self,
289            type_identifier: &NSString,
290            completion_handler: &block2::DynBlock<dyn Fn(*mut NSURL, Bool, *mut NSError)>,
291        ) -> Retained<NSProgress>;
292
293        #[cfg(feature = "NSString")]
294        #[unsafe(method(suggestedName))]
295        #[unsafe(method_family = none)]
296        pub fn suggestedName(&self) -> Option<Retained<NSString>>;
297
298        #[cfg(feature = "NSString")]
299        /// Setter for [`suggestedName`][Self::suggestedName].
300        ///
301        /// This is [copied][crate::NSCopying::copy] when set.
302        #[unsafe(method(setSuggestedName:))]
303        #[unsafe(method_family = none)]
304        pub fn setSuggestedName(&self, suggested_name: Option<&NSString>);
305
306        #[unsafe(method(initWithObject:))]
307        #[unsafe(method_family = init)]
308        pub fn initWithObject(
309            this: Allocated<Self>,
310            object: &ProtocolObject<dyn NSItemProviderWriting>,
311        ) -> Retained<Self>;
312
313        #[unsafe(method(registerObject:visibility:))]
314        #[unsafe(method_family = none)]
315        pub fn registerObject_visibility(
316            &self,
317            object: &ProtocolObject<dyn NSItemProviderWriting>,
318            visibility: NSItemProviderRepresentationVisibility,
319        );
320
321        #[cfg(all(feature = "NSObject", feature = "NSString"))]
322        /// # Safety
323        ///
324        /// `item` should be of the correct type.
325        #[unsafe(method(initWithItem:typeIdentifier:))]
326        #[unsafe(method_family = init)]
327        pub unsafe fn initWithItem_typeIdentifier(
328            this: Allocated<Self>,
329            item: Option<&ProtocolObject<dyn NSSecureCoding>>,
330            type_identifier: Option<&NSString>,
331        ) -> Retained<Self>;
332
333        #[cfg(feature = "NSURL")]
334        /// # Safety
335        ///
336        /// `file_url` might not allow `None`.
337        #[unsafe(method(initWithContentsOfURL:))]
338        #[unsafe(method_family = init)]
339        pub unsafe fn initWithContentsOfURL(
340            this: Allocated<Self>,
341            file_url: Option<&NSURL>,
342        ) -> Option<Retained<Self>>;
343
344        #[cfg(all(
345            feature = "NSDictionary",
346            feature = "NSError",
347            feature = "NSObject",
348            feature = "NSString",
349            feature = "block2"
350        ))]
351        /// # Safety
352        ///
353        /// `load_handler` must be a valid pointer.
354        #[unsafe(method(registerItemForTypeIdentifier:loadHandler:))]
355        #[unsafe(method_family = none)]
356        pub unsafe fn registerItemForTypeIdentifier_loadHandler(
357            &self,
358            type_identifier: &NSString,
359            load_handler: NSItemProviderLoadHandler,
360        );
361
362        #[cfg(all(
363            feature = "NSDictionary",
364            feature = "NSError",
365            feature = "NSObject",
366            feature = "NSString",
367            feature = "block2"
368        ))]
369        /// # Safety
370        ///
371        /// - `options` generic should be of the correct type.
372        /// - `completion_handler` must be a valid pointer or null.
373        #[unsafe(method(loadItemForTypeIdentifier:options:completionHandler:))]
374        #[unsafe(method_family = none)]
375        pub unsafe fn loadItemForTypeIdentifier_options_completionHandler(
376            &self,
377            type_identifier: &NSString,
378            options: Option<&NSDictionary>,
379            completion_handler: NSItemProviderCompletionHandler,
380        );
381    );
382}
383
384/// Methods declared on superclass `NSObject`.
385impl NSItemProvider {
386    extern_methods!(
387        #[unsafe(method(new))]
388        #[unsafe(method_family = new)]
389        pub fn new() -> Retained<Self>;
390    );
391}
392
393impl DefaultRetained for NSItemProvider {
394    #[inline]
395    fn default_retained() -> Retained<Self> {
396        Self::new()
397    }
398}
399
400extern "C" {
401    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderpreferredimagesizekey?language=objc)
402    #[cfg(feature = "NSString")]
403    pub static NSItemProviderPreferredImageSizeKey: &'static NSString;
404}
405
406/// NSPreviewSupport.
407impl NSItemProvider {
408    extern_methods!(
409        #[cfg(all(
410            feature = "NSDictionary",
411            feature = "NSError",
412            feature = "NSObject",
413            feature = "block2"
414        ))]
415        /// # Safety
416        ///
417        /// The returned block must be sendable.
418        #[unsafe(method(previewImageHandler))]
419        #[unsafe(method_family = none)]
420        pub unsafe fn previewImageHandler(&self) -> NSItemProviderLoadHandler;
421
422        #[cfg(all(
423            feature = "NSDictionary",
424            feature = "NSError",
425            feature = "NSObject",
426            feature = "block2"
427        ))]
428        /// Setter for [`previewImageHandler`][Self::previewImageHandler].
429        ///
430        /// This is [copied][crate::NSCopying::copy] when set.
431        ///
432        /// # Safety
433        ///
434        /// `preview_image_handler` must be a valid pointer or null.
435        #[unsafe(method(setPreviewImageHandler:))]
436        #[unsafe(method_family = none)]
437        pub unsafe fn setPreviewImageHandler(
438            &self,
439            preview_image_handler: NSItemProviderLoadHandler,
440        );
441
442        #[cfg(all(
443            feature = "NSDictionary",
444            feature = "NSError",
445            feature = "NSObject",
446            feature = "block2"
447        ))]
448        /// # Safety
449        ///
450        /// - `options` generic should be of the correct type.
451        /// - `options` might not allow `None`.
452        /// - `completion_handler` must be a valid pointer.
453        #[unsafe(method(loadPreviewImageWithOptions:completionHandler:))]
454        #[unsafe(method_family = none)]
455        pub unsafe fn loadPreviewImageWithOptions_completionHandler(
456            &self,
457            options: Option<&NSDictionary>,
458            completion_handler: NSItemProviderCompletionHandler,
459        );
460    );
461}
462
463extern "C" {
464    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptpreprocessingresultskey?language=objc)
465    #[cfg(feature = "NSString")]
466    pub static NSExtensionJavaScriptPreprocessingResultsKey: Option<&'static NSString>;
467}
468
469extern "C" {
470    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptfinalizeargumentkey?language=objc)
471    #[cfg(feature = "NSString")]
472    pub static NSExtensionJavaScriptFinalizeArgumentKey: Option<&'static NSString>;
473}
474
475extern "C" {
476    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrordomain?language=objc)
477    #[cfg(feature = "NSString")]
478    pub static NSItemProviderErrorDomain: &'static NSString;
479}
480
481/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrorcode?language=objc)
482// NS_ENUM
483#[repr(transparent)]
484#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
485pub struct NSItemProviderErrorCode(pub NSInteger);
486impl NSItemProviderErrorCode {
487    #[doc(alias = "NSItemProviderUnknownError")]
488    pub const UnknownError: Self = Self(-1);
489    #[doc(alias = "NSItemProviderItemUnavailableError")]
490    pub const ItemUnavailableError: Self = Self(-1000);
491    #[doc(alias = "NSItemProviderUnexpectedValueClassError")]
492    pub const UnexpectedValueClassError: Self = Self(-1100);
493    #[doc(alias = "NSItemProviderUnavailableCoercionError")]
494    pub const UnavailableCoercionError: Self = Self(-1200);
495}
496
497unsafe impl Encode for NSItemProviderErrorCode {
498    const ENCODING: Encoding = NSInteger::ENCODING;
499}
500
501unsafe impl RefEncode for NSItemProviderErrorCode {
502    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
503}