give opportunity for faster equating of ObjectSnapshot

This commit is contained in:
John Estropia
2020-12-26 23:44:35 +09:00
parent 9406901b28
commit 5de5ecee06

View File

@@ -98,7 +98,7 @@ public struct ObjectSnapshot<O: DynamicObject>: ObjectRepresentation, Hashable {
public static func == (_ lhs: Self, _ rhs: Self) -> Bool { public static func == (_ lhs: Self, _ rhs: Self) -> Bool {
return lhs.id == rhs.id return lhs.id == rhs.id
&& lhs.valuesRef == rhs.valuesRef && (lhs.generation == rhs.generation || lhs.valuesRef == rhs.valuesRef)
} }
@@ -122,18 +122,27 @@ public struct ObjectSnapshot<O: DynamicObject>: ObjectRepresentation, Hashable {
self.id = objectID self.id = objectID
self.context = context self.context = context
self.values = values self.values = values
self.generation = .init()
} }
// MARK: FilePrivate // MARK: FilePrivate
fileprivate var values: [String: Any] fileprivate var values: [String: Any] {
didSet {
self.generation = .init()
}
}
// MARK: Private // MARK: Private
private let id: O.ObjectID private let id: O.ObjectID
private let context: NSManagedObjectContext private let context: NSManagedObjectContext
private var generation: UUID
private var valuesRef: NSDictionary { private var valuesRef: NSDictionary {