use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFileProviderTestingOperationType(pub NSInteger);
impl NSFileProviderTestingOperationType {
#[doc(alias = "NSFileProviderTestingOperationTypeIngestion")]
pub const Ingestion: Self = Self(0);
#[doc(alias = "NSFileProviderTestingOperationTypeLookup")]
pub const Lookup: Self = Self(1);
#[doc(alias = "NSFileProviderTestingOperationTypeCreation")]
pub const Creation: Self = Self(2);
#[doc(alias = "NSFileProviderTestingOperationTypeModification")]
pub const Modification: Self = Self(3);
#[doc(alias = "NSFileProviderTestingOperationTypeDeletion")]
pub const Deletion: Self = Self(4);
#[doc(alias = "NSFileProviderTestingOperationTypeContentFetch")]
pub const ContentFetch: Self = Self(5);
#[doc(alias = "NSFileProviderTestingOperationTypeChildrenEnumeration")]
pub const ChildrenEnumeration: Self = Self(6);
#[doc(alias = "NSFileProviderTestingOperationTypeCollisionResolution")]
pub const CollisionResolution: Self = Self(7);
}
unsafe impl Encode for NSFileProviderTestingOperationType {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for NSFileProviderTestingOperationType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_protocol!(
pub unsafe trait NSFileProviderTestingOperation: NSObjectProtocol {
#[method(type)]
unsafe fn r#type(&self) -> NSFileProviderTestingOperationType;
#[method_id(@__retain_semantics Other asIngestion)]
unsafe fn asIngestion(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingIngestion>>>;
#[method_id(@__retain_semantics Other asLookup)]
unsafe fn asLookup(&self) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingLookup>>>;
#[method_id(@__retain_semantics Other asCreation)]
unsafe fn asCreation(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingCreation>>>;
#[method_id(@__retain_semantics Other asModification)]
unsafe fn asModification(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingModification>>>;
#[method_id(@__retain_semantics Other asDeletion)]
unsafe fn asDeletion(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingDeletion>>>;
#[method_id(@__retain_semantics Other asContentFetch)]
unsafe fn asContentFetch(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingContentFetch>>>;
#[method_id(@__retain_semantics Other asChildrenEnumeration)]
unsafe fn asChildrenEnumeration(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingChildrenEnumeration>>>;
#[method_id(@__retain_semantics Other asCollisionResolution)]
unsafe fn asCollisionResolution(
&self,
) -> Option<Id<ProtocolObject<dyn NSFileProviderTestingCollisionResolution>>>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingOperation {}
);
extern_methods!(
#[cfg(feature = "NSFileProviderManager")]
unsafe impl NSFileProviderManager {
#[method_id(@__retain_semantics Other listAvailableTestingOperationsWithError:_)]
pub unsafe fn listAvailableTestingOperationsWithError(
&self,
) -> Result<Id<NSArray<ProtocolObject<dyn NSFileProviderTestingOperation>>>, Id<NSError>>;
#[method_id(@__retain_semantics Other runTestingOperations:error:_)]
pub unsafe fn runTestingOperations_error(
&self,
operations: &NSArray<ProtocolObject<dyn NSFileProviderTestingOperation>>,
) -> Result<
Id<NSDictionary<ProtocolObject<dyn NSFileProviderTestingOperation>, NSError>>,
Id<NSError>,
>;
}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSFileProviderTestingOperationSide(pub NSUInteger);
impl NSFileProviderTestingOperationSide {
#[doc(alias = "NSFileProviderTestingOperationSideDisk")]
pub const Disk: Self = Self(0);
#[doc(alias = "NSFileProviderTestingOperationSideFileProvider")]
pub const FileProvider: Self = Self(1);
}
unsafe impl Encode for NSFileProviderTestingOperationSide {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSFileProviderTestingOperationSide {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_protocol!(
pub unsafe trait NSFileProviderTestingIngestion: NSFileProviderTestingOperation {
#[method(side)]
unsafe fn side(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other itemIdentifier)]
unsafe fn itemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other item)]
unsafe fn item(&self) -> Option<Id<NSFileProviderItem>>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingIngestion {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingLookup: NSFileProviderTestingOperation {
#[method(side)]
unsafe fn side(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other itemIdentifier)]
unsafe fn itemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingLookup {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingCreation: NSFileProviderTestingOperation {
#[method(targetSide)]
unsafe fn targetSide(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other sourceItem)]
unsafe fn sourceItem(&self) -> Id<NSFileProviderItem>;
#[cfg(feature = "NSFileProviderDomain")]
#[method_id(@__retain_semantics Other domainVersion)]
unsafe fn domainVersion(&self) -> Option<Id<NSFileProviderDomainVersion>>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingCreation {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingModification:
NSFileProviderTestingOperation
{
#[method(targetSide)]
unsafe fn targetSide(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other sourceItem)]
unsafe fn sourceItem(&self) -> Id<NSFileProviderItem>;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other targetItemIdentifier)]
unsafe fn targetItemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other targetItemBaseVersion)]
unsafe fn targetItemBaseVersion(&self) -> Id<NSFileProviderItemVersion>;
#[cfg(feature = "NSFileProviderItem")]
#[method(changedFields)]
unsafe fn changedFields(&self) -> NSFileProviderItemFields;
#[cfg(feature = "NSFileProviderDomain")]
#[method_id(@__retain_semantics Other domainVersion)]
unsafe fn domainVersion(&self) -> Option<Id<NSFileProviderDomainVersion>>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingModification {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingDeletion: NSFileProviderTestingOperation {
#[method(targetSide)]
unsafe fn targetSide(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other sourceItemIdentifier)]
unsafe fn sourceItemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other targetItemIdentifier)]
unsafe fn targetItemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other targetItemBaseVersion)]
unsafe fn targetItemBaseVersion(&self) -> Id<NSFileProviderItemVersion>;
#[cfg(feature = "NSFileProviderDomain")]
#[method_id(@__retain_semantics Other domainVersion)]
unsafe fn domainVersion(&self) -> Option<Id<NSFileProviderDomainVersion>>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingDeletion {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingContentFetch:
NSFileProviderTestingOperation
{
#[method(side)]
unsafe fn side(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other itemIdentifier)]
unsafe fn itemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingContentFetch {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingChildrenEnumeration:
NSFileProviderTestingOperation
{
#[method(side)]
unsafe fn side(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other itemIdentifier)]
unsafe fn itemIdentifier(&self) -> Id<NSFileProviderItemIdentifier>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingChildrenEnumeration {}
);
extern_protocol!(
pub unsafe trait NSFileProviderTestingCollisionResolution:
NSFileProviderTestingOperation
{
#[method(side)]
unsafe fn side(&self) -> NSFileProviderTestingOperationSide;
#[cfg(feature = "NSFileProviderItem")]
#[method_id(@__retain_semantics Other renamedItem)]
unsafe fn renamedItem(&self) -> Id<NSFileProviderItem>;
}
unsafe impl ProtocolType for dyn NSFileProviderTestingCollisionResolution {}
);