I want to generate Hashable implementation
Template used to generate hashing for all types that conform to :AutoHashable, allowing us to avoid writing boilerplate code.
It adds :Hashable conformance to all types, except protocols (because it would require turning them into PAT’s).
For protocols it’s just generating var hashValue comparator.
Stencil template
Available variable annotations:
skipHashingallows you to skip variable from being compared.includeInHashingis only applied on enums and allows us to add some computed variable into hashing logic
Example output:
// MARK: - AdNodeViewModel AutoHashable
extension AdNodeViewModel: Hashable {
internal var hashValue: Int {
return combineHashes(remoteAdView.hashValue, hidesDisclaimer.hashValue, type.hashValue, height.hashValue, attributedDisclaimer.hashValue, 0)
}
}
View on GitHub
Hashable Reference