Troubles with API
psi-gh opened this issue · 2 comments
psi-gh commented
For example, in my code i have a very common case:
protocol BaseClassProtocol { }
class ConcreteClass1: BaseClassProtocol { }
class ConcreteClass2: BaseClassProtocol { }
Anywere in my codebase, there is only BaseClassProtocol
being used. For example:
let array:[BaseClassProtocol] = ...
this array contains various classes/structs with the same protocol.
How can I apply DeepDiff library and DiffAware protocol to compare various arrays of BaseClassProtocol
objects?
Voxar commented
Create a wrapper struct that implements DiffAware
struct DiffWrapper: DiffAware {
var item: BaseClassProtocol
var diffId: String {
return item.id
}
static func compareContent(_ a: DiffWrapper, _ b: DiffWrapper) -> Bool {
return a.item == b.item
}
}
let changes = diff(old.map(DiffWrapper.init), new.map(DiffWrapper.init))