Rework storage structs, link preview
This commit is contained in:
33
CHDataManagement/Model/Item/LocalizedItemId.swift
Normal file
33
CHDataManagement/Model/Item/LocalizedItemId.swift
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
struct LocalizedItemId {
|
||||
|
||||
let language: ContentLanguage
|
||||
|
||||
let itemType: ItemReference
|
||||
}
|
||||
|
||||
extension LocalizedItemId: Equatable {
|
||||
|
||||
static func == (lhs: LocalizedItemId, rhs: LocalizedItemId) -> Bool {
|
||||
lhs.language == rhs.language &&
|
||||
lhs.itemType == rhs.itemType
|
||||
}
|
||||
}
|
||||
|
||||
extension LocalizedItemId: Hashable {
|
||||
|
||||
func hash(into hasher: inout Hasher) {
|
||||
hasher.combine(language)
|
||||
hasher.combine(itemType.id)
|
||||
}
|
||||
}
|
||||
|
||||
extension LocalizedItemId: Comparable {
|
||||
|
||||
static func < (lhs: LocalizedItemId, rhs: LocalizedItemId) -> Bool {
|
||||
guard lhs.itemType == rhs.itemType else {
|
||||
return lhs.itemType < rhs.itemType
|
||||
}
|
||||
return lhs.language < rhs.language
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user