import Foundation struct RDEPUBChapterOffsetMap { let fragmentOffsets: [String: Int] let pageStartOffsets: [Int] let pageEndOffsets: [Int] /// fragmentID -> 章内字符偏移 func chapterOffset(forFragmentID fragmentID: String) -> Int? { return fragmentOffsets[fragmentID] } /// 章内字符偏移 -> 章内页码(从 0 开始) func pageIndex(forChapterOffset offset: Int) -> Int? { for i in 0..= pageStartOffsets[i] && offset <= pageEndOffsets[i] { return i } } return nil } }