Source code
Revision control
Copy as Markdown
Other Tools
//! 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<NSArray<NSString>>;
#[cfg(all(feature = "NSArray", feature = "NSString"))]
#[optional]
#[unsafe(method(writableTypeIdentifiersForItemProvider))]
#[unsafe(method_family = none)]
fn writableTypeIdentifiersForItemProvider(&self) -> Retained<NSArray<NSString>>;
#[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<dyn Fn(*mut NSData, *mut NSError)>,
) -> Option<Retained<NSProgress>>;
}
);
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<NSArray<NSString>>;
#[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<Self>, Retained<NSError>>;
}
);
/// [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<dyn Fn(*mut ProtocolObject<dyn NSSecureCoding>, *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<Self>) -> Retained<Self>;
#[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<block2::DynBlock<dyn Fn(*mut NSData, *mut NSError)>>,
) -> *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<block2::DynBlock<dyn Fn(*mut NSURL, Bool, *mut NSError)>>,
) -> *mut NSProgress,
>,
);
#[cfg(all(feature = "NSArray", feature = "NSString"))]
#[unsafe(method(registeredTypeIdentifiers))]
#[unsafe(method_family = none)]
pub fn registeredTypeIdentifiers(&self) -> Retained<NSArray<NSString>>;
#[cfg(all(feature = "NSArray", feature = "NSString"))]
#[unsafe(method(registeredTypeIdentifiersWithFileOptions:))]
#[unsafe(method_family = none)]
pub fn registeredTypeIdentifiersWithFileOptions(
&self,
file_options: NSItemProviderFileOptions,
) -> Retained<NSArray<NSString>>;
#[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<dyn Fn(*mut NSData, *mut NSError)>,
) -> Retained<NSProgress>;
#[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<dyn Fn(*mut NSURL, *mut NSError)>,
) -> Retained<NSProgress>;
#[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<dyn Fn(*mut NSURL, Bool, *mut NSError)>,
) -> Retained<NSProgress>;
#[cfg(feature = "NSString")]
#[unsafe(method(suggestedName))]
#[unsafe(method_family = none)]
pub fn suggestedName(&self) -> Option<Retained<NSString>>;
#[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<Self>,
object: &ProtocolObject<dyn NSItemProviderWriting>,
) -> Retained<Self>;
#[unsafe(method(registerObject:visibility:))]
#[unsafe(method_family = none)]
pub fn registerObject_visibility(
&self,
object: &ProtocolObject<dyn NSItemProviderWriting>,
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<Self>,
item: Option<&ProtocolObject<dyn NSSecureCoding>>,
type_identifier: Option<&NSString>,
) -> Retained<Self>;
#[cfg(feature = "NSURL")]
/// # Safety
///
/// `file_url` might not allow `None`.
#[unsafe(method(initWithContentsOfURL:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithContentsOfURL(
this: Allocated<Self>,
file_url: Option<&NSURL>,
) -> Option<Retained<Self>>;
#[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<Self>;
);
}
impl DefaultRetained for NSItemProvider {
#[inline]
fn default_retained() -> Retained<Self> {
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);
}