use crate::common::*;
use crate::CoreData::*;
use crate::Foundation::*;
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSMergePolicyType {
NSErrorMergePolicyType = 0x00,
NSMergeByPropertyStoreTrumpMergePolicyType = 0x01,
NSMergeByPropertyObjectTrumpMergePolicyType = 0x02,
NSOverwriteMergePolicyType = 0x03,
NSRollbackMergePolicyType = 0x04,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSMergeConflict;
unsafe impl ClassType for NSMergeConflict {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSMergeConflict {
#[method_id(@__retain_semantics Other sourceObject)]
pub unsafe fn sourceObject(&self) -> Id<NSManagedObject, Shared>;
#[method_id(@__retain_semantics Other objectSnapshot)]
pub unsafe fn objectSnapshot(&self) -> Option<Id<NSDictionary<NSString, Object>, Shared>>;
#[method_id(@__retain_semantics Other cachedSnapshot)]
pub unsafe fn cachedSnapshot(&self) -> Option<Id<NSDictionary<NSString, Object>, Shared>>;
#[method_id(@__retain_semantics Other persistedSnapshot)]
pub unsafe fn persistedSnapshot(
&self,
) -> Option<Id<NSDictionary<NSString, Object>, Shared>>;
#[method(newVersionNumber)]
pub unsafe fn newVersionNumber(&self) -> NSUInteger;
#[method(oldVersionNumber)]
pub unsafe fn oldVersionNumber(&self) -> NSUInteger;
#[method_id(@__retain_semantics Init initWithSource:newVersion:oldVersion:cachedSnapshot:persistedSnapshot:)]
pub unsafe fn initWithSource_newVersion_oldVersion_cachedSnapshot_persistedSnapshot(
this: Option<Allocated<Self>>,
srcObject: &NSManagedObject,
newvers: NSUInteger,
oldvers: NSUInteger,
cachesnap: Option<&NSDictionary<NSString, Object>>,
persnap: Option<&NSDictionary<NSString, Object>>,
) -> Id<Self, Shared>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Option<Allocated<Self>>) -> Id<Self, Shared>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSConstraintConflict;
unsafe impl ClassType for NSConstraintConflict {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSConstraintConflict {
#[method_id(@__retain_semantics Other constraint)]
pub unsafe fn constraint(&self) -> Id<NSArray<NSString>, Shared>;
#[method_id(@__retain_semantics Other constraintValues)]
pub unsafe fn constraintValues(&self) -> Id<NSDictionary<NSString, Object>, Shared>;
#[method_id(@__retain_semantics Other databaseObject)]
pub unsafe fn databaseObject(&self) -> Option<Id<NSManagedObject, Shared>>;
#[method_id(@__retain_semantics Other databaseSnapshot)]
pub unsafe fn databaseSnapshot(&self)
-> Option<Id<NSDictionary<NSString, Object>, Shared>>;
#[method_id(@__retain_semantics Other conflictingObjects)]
pub unsafe fn conflictingObjects(&self) -> Id<NSArray<NSManagedObject>, Shared>;
#[method_id(@__retain_semantics Other conflictingSnapshots)]
pub unsafe fn conflictingSnapshots(&self) -> Id<NSArray<NSDictionary>, Shared>;
#[method_id(@__retain_semantics Init initWithConstraint:databaseObject:databaseSnapshot:conflictingObjects:conflictingSnapshots:)]
pub unsafe fn initWithConstraint_databaseObject_databaseSnapshot_conflictingObjects_conflictingSnapshots(
this: Option<Allocated<Self>>,
contraint: &NSArray<NSString>,
databaseObject: Option<&NSManagedObject>,
databaseSnapshot: Option<&NSDictionary>,
conflictingObjects: &NSArray<NSManagedObject>,
conflictingSnapshots: &NSArray,
) -> Id<Self, Shared>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSMergePolicy;
unsafe impl ClassType for NSMergePolicy {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSMergePolicy {
#[method_id(@__retain_semantics Other errorMergePolicy)]
pub unsafe fn errorMergePolicy() -> Id<NSMergePolicy, Shared>;
#[method_id(@__retain_semantics Other rollbackMergePolicy)]
pub unsafe fn rollbackMergePolicy() -> Id<NSMergePolicy, Shared>;
#[method_id(@__retain_semantics Other overwriteMergePolicy)]
pub unsafe fn overwriteMergePolicy() -> Id<NSMergePolicy, Shared>;
#[method_id(@__retain_semantics Other mergeByPropertyObjectTrumpMergePolicy)]
pub unsafe fn mergeByPropertyObjectTrumpMergePolicy() -> Id<NSMergePolicy, Shared>;
#[method_id(@__retain_semantics Other mergeByPropertyStoreTrumpMergePolicy)]
pub unsafe fn mergeByPropertyStoreTrumpMergePolicy() -> Id<NSMergePolicy, Shared>;
#[method(mergeType)]
pub unsafe fn mergeType(&self) -> NSMergePolicyType;
#[method_id(@__retain_semantics Init initWithMergeType:)]
pub unsafe fn initWithMergeType(
this: Option<Allocated<Self>>,
ty: NSMergePolicyType,
) -> Id<Self, Shared>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Option<Allocated<Self>>) -> Id<Self, Shared>;
#[method(resolveConflicts:error:)]
pub unsafe fn resolveConflicts_error(
&self,
list: &NSArray,
) -> Result<(), Id<NSError, Shared>>;
#[method(resolveOptimisticLockingVersionConflicts:error:)]
pub unsafe fn resolveOptimisticLockingVersionConflicts_error(
&self,
list: &NSArray<NSMergeConflict>,
) -> Result<(), Id<NSError, Shared>>;
#[method(resolveConstraintConflicts:error:)]
pub unsafe fn resolveConstraintConflicts_error(
&self,
list: &NSArray<NSConstraintConflict>,
) -> Result<(), Id<NSError, Shared>>;
}
);