//! This file has been automatically generated by `objc2`'s `header-translator`. //! DO NOT EDIT use core::ffi::*; use core::ptr::NonNull; use objc2::__framework_prelude::*; use crate::*; /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderrepresentationvisibility?language=objc) // NS_ENUM #[repr(transparent)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct NSItemProviderRepresentationVisibility(pub NSInteger); impl NSItemProviderRepresentationVisibility { #[doc(alias = "NSItemProviderRepresentationVisibilityAll")] pub const All: Self = Self(0); #[doc(alias = "NSItemProviderRepresentationVisibilityTeam")] pub const Team: Self = Self(1); #[doc(alias = "NSItemProviderRepresentationVisibilityGroup")] pub const Group: Self = Self(2); #[doc(alias = "NSItemProviderRepresentationVisibilityOwnProcess")] pub const OwnProcess: Self = Self(3); } unsafe impl Encode for NSItemProviderRepresentationVisibility { const ENCODING: Encoding = NSInteger::ENCODING; } unsafe impl RefEncode for NSItemProviderRepresentationVisibility { const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING); } /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderfileoptions?language=objc) // NS_OPTIONS #[repr(transparent)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct NSItemProviderFileOptions(pub NSInteger); bitflags::bitflags! { impl NSItemProviderFileOptions: NSInteger { #[doc(alias = "NSItemProviderFileOptionOpenInPlace")] const OpenInPlace = 1; } } unsafe impl Encode for NSItemProviderFileOptions { const ENCODING: Encoding = NSInteger::ENCODING; } unsafe impl RefEncode for NSItemProviderFileOptions { const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING); } extern_protocol!( /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderwriting?language=objc) pub unsafe trait NSItemProviderWriting: NSObjectProtocol { #[cfg(all(feature = "NSArray", feature = "NSString"))] #[unsafe(method(writableTypeIdentifiersForItemProvider))] #[unsafe(method_family = none)] fn writableTypeIdentifiersForItemProvider_class() -> Retained>; #[cfg(all(feature = "NSArray", feature = "NSString"))] #[optional] #[unsafe(method(writableTypeIdentifiersForItemProvider))] #[unsafe(method_family = none)] fn writableTypeIdentifiersForItemProvider(&self) -> Retained>; #[cfg(feature = "NSString")] #[optional] #[unsafe(method(itemProviderVisibilityForRepresentationWithTypeIdentifier:))] #[unsafe(method_family = none)] fn itemProviderVisibilityForRepresentationWithTypeIdentifier_class( type_identifier: &NSString, ) -> NSItemProviderRepresentationVisibility; #[cfg(feature = "NSString")] #[optional] #[unsafe(method(itemProviderVisibilityForRepresentationWithTypeIdentifier:))] #[unsafe(method_family = none)] fn itemProviderVisibilityForRepresentationWithTypeIdentifier( &self, type_identifier: &NSString, ) -> NSItemProviderRepresentationVisibility; #[cfg(all( feature = "NSData", feature = "NSError", feature = "NSProgress", feature = "NSString", feature = "block2" ))] /// # Safety /// /// `completion_handler` block must be sendable. #[unsafe(method(loadDataWithTypeIdentifier:forItemProviderCompletionHandler:))] #[unsafe(method_family = none)] unsafe fn loadDataWithTypeIdentifier_forItemProviderCompletionHandler( &self, type_identifier: &NSString, completion_handler: &block2::DynBlock, ) -> Option>; } ); extern_protocol!( /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderreading?language=objc) pub unsafe trait NSItemProviderReading: NSObjectProtocol { #[cfg(all(feature = "NSArray", feature = "NSString"))] #[unsafe(method(readableTypeIdentifiersForItemProvider))] #[unsafe(method_family = none)] fn readableTypeIdentifiersForItemProvider() -> Retained>; #[cfg(all(feature = "NSData", feature = "NSError", feature = "NSString"))] #[unsafe(method(objectWithItemProviderData:typeIdentifier:error:_))] #[unsafe(method_family = none)] fn objectWithItemProviderData_typeIdentifier_error( data: &NSData, type_identifier: &NSString, ) -> Result, Retained>; } ); /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidercompletionhandler?language=objc) #[cfg(all(feature = "NSError", feature = "NSObject", feature = "block2"))] pub type NSItemProviderCompletionHandler = *mut block2::DynBlock, *mut NSError)>; /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderloadhandler?language=objc) #[cfg(all( feature = "NSDictionary", feature = "NSError", feature = "NSObject", feature = "block2" ))] pub type NSItemProviderLoadHandler = *mut block2::DynBlock< dyn Fn(NSItemProviderCompletionHandler, *const AnyClass, *mut NSDictionary), >; extern_class!( /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovider?language=objc) #[unsafe(super(NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] pub struct NSItemProvider; ); #[cfg(feature = "NSObject")] extern_conformance!( unsafe impl NSCopying for NSItemProvider {} ); #[cfg(feature = "NSObject")] unsafe impl CopyingHelper for NSItemProvider { type Result = Self; } extern_conformance!( unsafe impl NSObjectProtocol for NSItemProvider {} ); impl NSItemProvider { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[cfg(all( feature = "NSData", feature = "NSError", feature = "NSProgress", feature = "NSString", feature = "block2" ))] /// # Safety /// /// `load_handler` block must be sendable. #[unsafe(method(registerDataRepresentationForTypeIdentifier:visibility:loadHandler:))] #[unsafe(method_family = none)] pub unsafe fn registerDataRepresentationForTypeIdentifier_visibility_loadHandler( &self, type_identifier: &NSString, visibility: NSItemProviderRepresentationVisibility, load_handler: &block2::DynBlock< dyn Fn( NonNull>, ) -> *mut NSProgress, >, ); #[cfg(all( feature = "NSError", feature = "NSProgress", feature = "NSString", feature = "NSURL", feature = "block2" ))] /// # Safety /// /// `load_handler` block must be sendable. #[unsafe(method(registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:))] #[unsafe(method_family = none)] pub unsafe fn registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler( &self, type_identifier: &NSString, file_options: NSItemProviderFileOptions, visibility: NSItemProviderRepresentationVisibility, load_handler: &block2::DynBlock< dyn Fn( NonNull>, ) -> *mut NSProgress, >, ); #[cfg(all(feature = "NSArray", feature = "NSString"))] #[unsafe(method(registeredTypeIdentifiers))] #[unsafe(method_family = none)] pub fn registeredTypeIdentifiers(&self) -> Retained>; #[cfg(all(feature = "NSArray", feature = "NSString"))] #[unsafe(method(registeredTypeIdentifiersWithFileOptions:))] #[unsafe(method_family = none)] pub fn registeredTypeIdentifiersWithFileOptions( &self, file_options: NSItemProviderFileOptions, ) -> Retained>; #[cfg(feature = "NSString")] #[unsafe(method(hasItemConformingToTypeIdentifier:))] #[unsafe(method_family = none)] pub fn hasItemConformingToTypeIdentifier(&self, type_identifier: &NSString) -> bool; #[cfg(feature = "NSString")] #[unsafe(method(hasRepresentationConformingToTypeIdentifier:fileOptions:))] #[unsafe(method_family = none)] pub fn hasRepresentationConformingToTypeIdentifier_fileOptions( &self, type_identifier: &NSString, file_options: NSItemProviderFileOptions, ) -> bool; #[cfg(all( feature = "NSData", feature = "NSError", feature = "NSProgress", feature = "NSString", feature = "block2" ))] /// # Safety /// /// `completion_handler` block must be sendable. #[unsafe(method(loadDataRepresentationForTypeIdentifier:completionHandler:))] #[unsafe(method_family = none)] pub unsafe fn loadDataRepresentationForTypeIdentifier_completionHandler( &self, type_identifier: &NSString, completion_handler: &block2::DynBlock, ) -> Retained; #[cfg(all( feature = "NSError", feature = "NSProgress", feature = "NSString", feature = "NSURL", feature = "block2" ))] /// # Safety /// /// `completion_handler` block must be sendable. #[unsafe(method(loadFileRepresentationForTypeIdentifier:completionHandler:))] #[unsafe(method_family = none)] pub unsafe fn loadFileRepresentationForTypeIdentifier_completionHandler( &self, type_identifier: &NSString, completion_handler: &block2::DynBlock, ) -> Retained; #[cfg(all( feature = "NSError", feature = "NSProgress", feature = "NSString", feature = "NSURL", feature = "block2" ))] /// # Safety /// /// `completion_handler` block must be sendable. #[unsafe(method(loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:))] #[unsafe(method_family = none)] pub unsafe fn loadInPlaceFileRepresentationForTypeIdentifier_completionHandler( &self, type_identifier: &NSString, completion_handler: &block2::DynBlock, ) -> Retained; #[cfg(feature = "NSString")] #[unsafe(method(suggestedName))] #[unsafe(method_family = none)] pub fn suggestedName(&self) -> Option>; #[cfg(feature = "NSString")] /// Setter for [`suggestedName`][Self::suggestedName]. /// /// This is [copied][crate::NSCopying::copy] when set. #[unsafe(method(setSuggestedName:))] #[unsafe(method_family = none)] pub fn setSuggestedName(&self, suggested_name: Option<&NSString>); #[unsafe(method(initWithObject:))] #[unsafe(method_family = init)] pub fn initWithObject( this: Allocated, object: &ProtocolObject, ) -> Retained; #[unsafe(method(registerObject:visibility:))] #[unsafe(method_family = none)] pub fn registerObject_visibility( &self, object: &ProtocolObject, visibility: NSItemProviderRepresentationVisibility, ); #[cfg(all(feature = "NSObject", feature = "NSString"))] /// # Safety /// /// `item` should be of the correct type. #[unsafe(method(initWithItem:typeIdentifier:))] #[unsafe(method_family = init)] pub unsafe fn initWithItem_typeIdentifier( this: Allocated, item: Option<&ProtocolObject>, type_identifier: Option<&NSString>, ) -> Retained; #[cfg(feature = "NSURL")] /// # Safety /// /// `file_url` might not allow `None`. #[unsafe(method(initWithContentsOfURL:))] #[unsafe(method_family = init)] pub unsafe fn initWithContentsOfURL( this: Allocated, file_url: Option<&NSURL>, ) -> Option>; #[cfg(all( feature = "NSDictionary", feature = "NSError", feature = "NSObject", feature = "NSString", feature = "block2" ))] /// # Safety /// /// `load_handler` must be a valid pointer. #[unsafe(method(registerItemForTypeIdentifier:loadHandler:))] #[unsafe(method_family = none)] pub unsafe fn registerItemForTypeIdentifier_loadHandler( &self, type_identifier: &NSString, load_handler: NSItemProviderLoadHandler, ); #[cfg(all( feature = "NSDictionary", feature = "NSError", feature = "NSObject", feature = "NSString", feature = "block2" ))] /// # Safety /// /// - `options` generic should be of the correct type. /// - `completion_handler` must be a valid pointer or null. #[unsafe(method(loadItemForTypeIdentifier:options:completionHandler:))] #[unsafe(method_family = none)] pub unsafe fn loadItemForTypeIdentifier_options_completionHandler( &self, type_identifier: &NSString, options: Option<&NSDictionary>, completion_handler: NSItemProviderCompletionHandler, ); ); } /// Methods declared on superclass `NSObject`. impl NSItemProvider { extern_methods!( #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } impl DefaultRetained for NSItemProvider { #[inline] fn default_retained() -> Retained { Self::new() } } extern "C" { /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemproviderpreferredimagesizekey?language=objc) #[cfg(feature = "NSString")] pub static NSItemProviderPreferredImageSizeKey: &'static NSString; } /// NSPreviewSupport. impl NSItemProvider { extern_methods!( #[cfg(all( feature = "NSDictionary", feature = "NSError", feature = "NSObject", feature = "block2" ))] /// # Safety /// /// The returned block must be sendable. #[unsafe(method(previewImageHandler))] #[unsafe(method_family = none)] pub unsafe fn previewImageHandler(&self) -> NSItemProviderLoadHandler; #[cfg(all( feature = "NSDictionary", feature = "NSError", feature = "NSObject", feature = "block2" ))] /// Setter for [`previewImageHandler`][Self::previewImageHandler]. /// /// This is [copied][crate::NSCopying::copy] when set. /// /// # Safety /// /// `preview_image_handler` must be a valid pointer or null. #[unsafe(method(setPreviewImageHandler:))] #[unsafe(method_family = none)] pub unsafe fn setPreviewImageHandler( &self, preview_image_handler: NSItemProviderLoadHandler, ); #[cfg(all( feature = "NSDictionary", feature = "NSError", feature = "NSObject", feature = "block2" ))] /// # Safety /// /// - `options` generic should be of the correct type. /// - `options` might not allow `None`. /// - `completion_handler` must be a valid pointer. #[unsafe(method(loadPreviewImageWithOptions:completionHandler:))] #[unsafe(method_family = none)] pub unsafe fn loadPreviewImageWithOptions_completionHandler( &self, options: Option<&NSDictionary>, completion_handler: NSItemProviderCompletionHandler, ); ); } extern "C" { /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptpreprocessingresultskey?language=objc) #[cfg(feature = "NSString")] pub static NSExtensionJavaScriptPreprocessingResultsKey: Option<&'static NSString>; } extern "C" { /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsextensionjavascriptfinalizeargumentkey?language=objc) #[cfg(feature = "NSString")] pub static NSExtensionJavaScriptFinalizeArgumentKey: Option<&'static NSString>; } extern "C" { /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrordomain?language=objc) #[cfg(feature = "NSString")] pub static NSItemProviderErrorDomain: &'static NSString; } /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsitemprovidererrorcode?language=objc) // NS_ENUM #[repr(transparent)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct NSItemProviderErrorCode(pub NSInteger); impl NSItemProviderErrorCode { #[doc(alias = "NSItemProviderUnknownError")] pub const UnknownError: Self = Self(-1); #[doc(alias = "NSItemProviderItemUnavailableError")] pub const ItemUnavailableError: Self = Self(-1000); #[doc(alias = "NSItemProviderUnexpectedValueClassError")] pub const UnexpectedValueClassError: Self = Self(-1100); #[doc(alias = "NSItemProviderUnavailableCoercionError")] pub const UnavailableCoercionError: Self = Self(-1200); } unsafe impl Encode for NSItemProviderErrorCode { const ENCODING: Encoding = NSInteger::ENCODING; } unsafe impl RefEncode for NSItemProviderErrorCode { const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING); }