You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 5, 2022. It is now read-only.
Could you explain why we need to use DiffAware protocol when Hashable do the same thing and there is a lot of helper functional out-of-the-box like Hasher etc.
For example, we have a simple struct:
struct SomeStruct<T: DiffAware, U: DiffAware> {
var value: T
var valuesArray: [U]
}
And if we want to conform DiffAware protocol, we need to calculate diffId something like this:
var diffId: Int {
let valueIds = self.values.map({ $0.diffId })
var hasher = Hasher()
hasher.combine(self.value.diffId)
hasher.combine(valueIds)
return hasher.finalize()
}
And if all the objects conformed Hashable protocol, I will not need to use map in this case and it will affect the performance.