#pragma once #include #include #include #include #include #include struct WifiResult { bool connected = false; std::string ssid; std::string ip; }; struct KeyboardResult { std::string text; }; struct MenuResult { int action = -1; uint8_t orientation = 0; uint8_t pageTurnOption = 0; }; struct ChapterResult { int spineIndex = 0; std::string anchor; }; struct PercentResult { int percent = 0; }; struct IntervalResult { uint32_t value = 0; }; struct PageResult { uint32_t page = 0; }; struct ProgressChangeResult { int spineIndex = 0; int page = 0; int totalPages = 0; std::string xpath; float percentage = 0.0f; bool hasSavedProgress = false; }; enum class NetworkMode; struct NetworkModeResult { NetworkMode mode; }; struct FootnoteResult { std::string href; }; struct FilePathResult { std::string path; }; using ResultVariant = std::variant; struct ActivityResult { bool isCancelled = false; ResultVariant data; explicit ActivityResult() = default; template requires std::is_constructible_v // cppcheck-suppress noExplicitConstructor ActivityResult(ResultType&& result) : data{std::forward(result)} {} }; using ActivityResultHandler = std::function;