Something went wrong. Try again.
A fork of https://github.com/crosspoint-reader/crosspoint-reader
Something went wrong. Try again.
1.3 kB · 68 lines
C
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#pragma once
#include <cstdint>#include <functional>#include <string>#include <type_traits>#include <utility>#include <variant>
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;};
struct PercentResult { int percent = 0;};
struct PageResult { uint32_t page = 0;};
struct SyncResult { int spineIndex = 0; int page = 0;};
enum class NetworkMode;
struct NetworkModeResult { NetworkMode mode;};
struct FootnoteResult { std::string href;};
using ResultVariant = std::variant<std::monostate, WifiResult, KeyboardResult, MenuResult, ChapterResult, PercentResult, PageResult, SyncResult, NetworkModeResult, FootnoteResult>;
struct ActivityResult { bool isCancelled = false; ResultVariant data;
explicit ActivityResult() = default;
template <typename ResultType> requires std::is_constructible_v<ResultVariant, ResultType&&> // cppcheck-suppress noExplicitConstructor ActivityResult(ResultType&& result) : data{std::forward<ResultType>(result)} {}};
using ActivityResultHandler = std::function<void(const ActivityResult&)>;