import Foundation final class RDEPUBRuntimeChapter { let spineIndex: Int let href: String let title: String var sourceAttributedString: NSAttributedString? let typesetAttributedString: NSAttributedString let layouter: RDEPUBTextLayouter let pageRanges: [NSRange] let pages: [RDEPUBTextPage] let chapterOffsetMap: RDEPUBChapterOffsetMap init( spineIndex: Int, href: String, title: String, sourceAttributedString: NSAttributedString?, typesetAttributedString: NSAttributedString, layouter: RDEPUBTextLayouter, pageRanges: [NSRange], pages: [RDEPUBTextPage], chapterOffsetMap: RDEPUBChapterOffsetMap ) { self.spineIndex = spineIndex self.href = href self.title = title self.sourceAttributedString = sourceAttributedString self.typesetAttributedString = typesetAttributedString self.layouter = layouter self.pageRanges = pageRanges self.pages = pages self.chapterOffsetMap = chapterOffsetMap } func releaseSourceText() { sourceAttributedString = nil } func updateCFIMap(_ cfiMap: RDEPUBCFIMap) { chapterOffsetMap.updateCFIMap(cfiMap) } }