You’re missing the declaration:
struct DateStruct: Hashable {
And your == function is wrong. You should compare the three properties.
static func == (lhs: DateStruct, rhs: DateStruct) -> Bool {
return lhs.year == rhs.year && lhs.month == rhs.month && lhs.day == rhs.day
}
It’s possible for two different values to have the same hash value.