Rework storage structs, link preview
This commit is contained in:
@ -56,7 +56,7 @@ final class GenerationResults: ObservableObject {
|
||||
var redirects: [String : String] = [:]
|
||||
|
||||
/// The cache of previously used GenerationResults
|
||||
private var cache: [ItemId : PageGenerationResults] = [:]
|
||||
private var cache: [LocalizedItemId : PageGenerationResults] = [:]
|
||||
|
||||
private(set) var general: PageGenerationResults!
|
||||
|
||||
@ -66,14 +66,14 @@ final class GenerationResults: ObservableObject {
|
||||
// MARK: Life cycle
|
||||
|
||||
init() {
|
||||
let id = ItemId(language: .english, itemType: .general)
|
||||
let id = LocalizedItemId(language: .english, itemType: .general)
|
||||
let general = PageGenerationResults(itemId: id, delegate: self)
|
||||
self.general = general
|
||||
cache[id] = general
|
||||
self.resultCount = 1
|
||||
}
|
||||
|
||||
func makeResults(_ itemId: ItemId) -> PageGenerationResults {
|
||||
func makeResults(_ itemId: LocalizedItemId) -> PageGenerationResults {
|
||||
guard let result = cache[itemId] else {
|
||||
let result = PageGenerationResults(itemId: itemId, delegate: self)
|
||||
cache[itemId] = result
|
||||
@ -83,18 +83,18 @@ final class GenerationResults: ObservableObject {
|
||||
return result
|
||||
}
|
||||
|
||||
func makeResults(for type: ItemType, in language: ContentLanguage) -> PageGenerationResults {
|
||||
let itemId = ItemId(language: language, itemType: type)
|
||||
func makeResults(for type: ItemReference, in language: ContentLanguage) -> PageGenerationResults {
|
||||
let itemId = LocalizedItemId(language: language, itemType: type)
|
||||
return makeResults(itemId)
|
||||
}
|
||||
|
||||
func makeResults(for page: Page, in language: ContentLanguage) -> PageGenerationResults {
|
||||
let itemId = ItemId(language: language, itemType: .page(page))
|
||||
let itemId = LocalizedItemId(language: language, itemType: .page(page))
|
||||
return makeResults(itemId)
|
||||
}
|
||||
|
||||
func makeResults(for tag: Tag, in language: ContentLanguage) -> PageGenerationResults {
|
||||
let itemId = ItemId(language: language, itemType: .tagPage(tag))
|
||||
let itemId = LocalizedItemId(language: language, itemType: .tagPage(tag))
|
||||
return makeResults(itemId)
|
||||
}
|
||||
|
||||
@ -209,9 +209,9 @@ final class GenerationResults: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
private extension Dictionary where Value == Set<ItemId> {
|
||||
private extension Dictionary where Value == Set<LocalizedItemId> {
|
||||
|
||||
mutating func remove<S>(keys: S, of item: ItemId) where S: Sequence, S.Element == Key {
|
||||
mutating func remove<S>(keys: S, of item: LocalizedItemId) where S: Sequence, S.Element == Key {
|
||||
for key in keys {
|
||||
guard var value = self[key] else { continue }
|
||||
value.remove(item)
|
||||
|
Reference in New Issue
Block a user