Force fetchLimit for ListPublisher and ListSnapshot

This commit is contained in:
John Estropia
2019-11-14 20:34:48 +09:00
parent c2e4c033ef
commit b1decc9853
2 changed files with 22 additions and 1 deletions

View File

@@ -192,6 +192,17 @@ extension Internals {
self.structure.update(sectionIDs: identifiers)
}
mutating func resize(limit: Int) {
let itemIdentifiers = self.itemIdentifiers
guard itemIdentifiers.endIndex > limit else {
return
}
self.structure.remove(itemIDs: itemIdentifiers.suffix(from: limit))
self.structure.removeAllEmptySections()
}
// MARK: Private
@@ -359,7 +370,7 @@ extension Internals {
.insert(contentsOf: items, at: itemIndex)
}
mutating func remove(itemIDs: [NSManagedObjectID]) {
mutating func remove<C: Collection>(itemIDs: C) where C.Element == NSManagedObjectID {
let itemPositionMap = self.itemPositionMap()
var removeIndexSetMap: [Int: IndexSet] = [:]
@@ -390,6 +401,11 @@ extension Internals {
}
}
mutating func removeAllEmptySections() {
self.sections.removeAll(where: { $0.elements.isEmpty })
}
mutating func move(itemID: NSManagedObjectID, before beforeItemID: NSManagedObjectID) {
guard let removed = self.remove(itemID: itemID) else {