34 lines
656 B
Swift
34 lines
656 B
Swift
|
|
struct ItemId {
|
|
|
|
let language: ContentLanguage
|
|
|
|
let itemType: ItemType
|
|
}
|
|
|
|
extension ItemId: Equatable {
|
|
|
|
static func == (lhs: ItemId, rhs: ItemId) -> Bool {
|
|
lhs.language == rhs.language &&
|
|
lhs.itemType == rhs.itemType
|
|
}
|
|
}
|
|
|
|
extension ItemId: Hashable {
|
|
|
|
func hash(into hasher: inout Hasher) {
|
|
hasher.combine(language)
|
|
hasher.combine(itemType.id)
|
|
}
|
|
}
|
|
|
|
extension ItemId: Comparable {
|
|
|
|
static func < (lhs: ItemId, rhs: ItemId) -> Bool {
|
|
guard lhs.itemType == rhs.itemType else {
|
|
return lhs.itemType < rhs.itemType
|
|
}
|
|
return lhs.language < rhs.language
|
|
}
|
|
}
|