Swift: estrutura hashable com propriedade de dicionário
Eu tenho uma estrutura no Swift que se parece com isso:
internal struct MapKey {
internal let id: String
internal let values: [String:String]
}
extension MapKey: Equatable {}
func ==(lhs: MapKey, rhs: MapKey) -> Bool {
return lhs.id == rhs.id && lhs.values == rhs.values
}
Agora tenho a necessidade de usar o MapKey como a chave em um dicionário Swift, que exige que o MapKey esteja em conformidade com o protocolo Hashable.
O que seria uma implementação correta do Hashable para uma estrutura como esta?
extension MapKey: Hashable {
var hashValue: Int {
return ??? // values does not have a hash function/property.
}
}
Eu estive pesquisando, mas não consegui identificar qual é a maneira correta de criar um dicionário de hash, pois preciso gerar um valor de hash paravalores própria propriedade. Qualquer ajuda é muito apreciada.