use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type NSFileProviderDomainIdentifier = NSString;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSFileProviderDomainVersion;
unsafe impl ClassType for NSFileProviderDomainVersion {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for NSFileProviderDomainVersion {}
unsafe impl NSObjectProtocol for NSFileProviderDomainVersion {}
unsafe impl NSSecureCoding for NSFileProviderDomainVersion {}
extern_methods!(
unsafe impl NSFileProviderDomainVersion {
#[method_id(@__retain_semantics Other next)]
pub unsafe fn next(&self) -> Id<NSFileProviderDomainVersion>;
#[method(compare:)]
pub unsafe fn compare(
&self,
other_version: &NSFileProviderDomainVersion,
) -> NSComparisonResult;
}
);
extern_methods!(
unsafe impl NSFileProviderDomainVersion {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFileProviderDomainTestingModes(pub NSUInteger);
impl NSFileProviderDomainTestingModes {
pub const NSFileProviderDomainTestingModeAlwaysEnabled: Self = Self(1 << 0);
pub const NSFileProviderDomainTestingModeInteractive: Self = Self(1 << 1);
}
unsafe impl Encode for NSFileProviderDomainTestingModes {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSFileProviderDomainTestingModes {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSFileProviderDomain;
unsafe impl ClassType for NSFileProviderDomain {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for NSFileProviderDomain {}
extern_methods!(
unsafe impl NSFileProviderDomain {
#[method_id(@__retain_semantics Init initWithIdentifier:displayName:pathRelativeToDocumentStorage:)]
pub unsafe fn initWithIdentifier_displayName_pathRelativeToDocumentStorage(
this: Allocated<Self>,
identifier: &NSFileProviderDomainIdentifier,
display_name: &NSString,
path_relative_to_document_storage: &NSString,
) -> Id<Self>;
#[method_id(@__retain_semantics Init initWithIdentifier:displayName:)]
pub unsafe fn initWithIdentifier_displayName(
this: Allocated<Self>,
identifier: &NSFileProviderDomainIdentifier,
display_name: &NSString,
) -> Id<Self>;
#[method_id(@__retain_semantics Other identifier)]
pub unsafe fn identifier(&self) -> Id<NSFileProviderDomainIdentifier>;
#[method_id(@__retain_semantics Other displayName)]
pub unsafe fn displayName(&self) -> Id<NSString>;
#[method_id(@__retain_semantics Other pathRelativeToDocumentStorage)]
pub unsafe fn pathRelativeToDocumentStorage(&self) -> Id<NSString>;
#[method(isDisconnected)]
pub unsafe fn isDisconnected(&self) -> bool;
#[method(userEnabled)]
pub unsafe fn userEnabled(&self) -> bool;
#[method(isHidden)]
pub unsafe fn isHidden(&self) -> bool;
#[method(setHidden:)]
pub unsafe fn setHidden(&self, hidden: bool);
#[method(isReplicated)]
pub unsafe fn isReplicated(&self) -> bool;
#[method(testingModes)]
pub unsafe fn testingModes(&self) -> NSFileProviderDomainTestingModes;
#[method(setTestingModes:)]
pub unsafe fn setTestingModes(&self, testing_modes: NSFileProviderDomainTestingModes);
#[method_id(@__retain_semantics Other backingStoreIdentity)]
pub unsafe fn backingStoreIdentity(&self) -> Option<Id<NSData>>;
#[method(supportsSyncingTrash)]
pub unsafe fn supportsSyncingTrash(&self) -> bool;
#[method(setSupportsSyncingTrash:)]
pub unsafe fn setSupportsSyncingTrash(&self, supports_syncing_trash: bool);
}
);
extern_methods!(
unsafe impl NSFileProviderDomain {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);
extern_methods!(
#[cfg(feature = "NSFileProviderExtension")]
unsafe impl NSFileProviderExtension {
#[method_id(@__retain_semantics Other domain)]
pub unsafe fn domain(&self) -> Option<Id<NSFileProviderDomain>>;
}
);
extern "C" {
pub static NSFileProviderDomainDidChange: &'static NSNotificationName;
}