objc2-file-provider 0.3.2

Bindings to the FileProvider framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/fileprovider/nsfileproviderrequest?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSFileProviderRequest;
);

extern_conformance!(
    unsafe impl NSObjectProtocol for NSFileProviderRequest {}
);

impl NSFileProviderRequest {
    extern_methods!(
        /// The request was made by the sync system, e.g. to update a file to its latest version after a remote update was pushed.
        ///
        /// This is only valid for NSFileProviderRequest objects passed to these methods:
        /// - [NSFileProviderEnumerating enumeratorForContainerItemIdentifier:]
        /// - [NSFileProviderReplicatedExtension fetchContentsForItemWithIdentifier:]
        ///
        /// For sync up methods (createItem/modifyItem/deleteItem), the system does not know which actor made the
        /// modifications to the file, so it cannot supply this information.
        #[unsafe(method(isSystemRequest))]
        #[unsafe(method_family = none)]
        pub unsafe fn isSystemRequest(&self) -> bool;

        /// The request was made by Finder or one of its helpers.
        ///
        /// This is only valid for NSFileProviderRequest objects passed to these methods:
        /// - [NSFileProviderEnumerating enumeratorForContainerItemIdentifier:]
        /// - [NSFileProviderReplicatedExtension fetchContentsForItemWithIdentifier:]
        ///
        /// For sync up methods (createItem/modifyItem/deleteItem), the system does not know which actor made the
        /// modifications to the file, so it cannot supply this information.
        #[unsafe(method(isFileViewerRequest))]
        #[unsafe(method_family = none)]
        pub unsafe fn isFileViewerRequest(&self) -> bool;

        /// The URL of the requesting executable. This will always be nil unless both an MDM profile key is set, and the
        /// provider's application is installed by an MDM profile.
        #[unsafe(method(requestingExecutable))]
        #[unsafe(method_family = none)]
        pub unsafe fn requestingExecutable(&self) -> Option<Retained<NSURL>>;

        #[cfg(feature = "NSFileProviderDomain")]
        /// The version of the domain when the event that triggered the request was observed.
        ///
        /// If the extension doesn't implement the NSFileProviderDomainState protocol, this will be nil.
        #[unsafe(method(domainVersion))]
        #[unsafe(method_family = none)]
        pub unsafe fn domainVersion(&self) -> Option<Retained<NSFileProviderDomainVersion>>;
    );
}

/// Methods declared on superclass `NSObject`.
impl NSFileProviderRequest {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;
    );
}