#pragma once #include #include struct Token { uint32_t offset; uint16_t length; uint32_t paragraph; }; class Reader { public: bool load(const String& book); void restoreAtParagraphStart(uint32_t savedWord); const String currentWord() const; bool advance(); bool previousParagraph(); bool nextParagraph(); uint32_t currentIndex() const; uint32_t delayMs(uint16_t wpm) const; private: String book_; std::vector tokens_; std::vector paragraphStarts_; uint32_t index_ = 0; };