#pragma once #include #include #include #include #include struct ResponsePICOBOOT { static constexpr int8_t ext_id = 1; auto as_tuple() const { return std::tie(); } auto as_tuple() { return std::tie(); } }; struct RequestPICOBOOT { static constexpr int8_t ext_id = 2; auto as_tuple() const { return std::tie(); } auto as_tuple() { return std::tie(); } }; struct RequestInfo { static constexpr int8_t ext_id = 4; auto as_tuple() const { return std::tie(); } auto as_tuple() { return std::tie(); } }; struct ResponseInfo { static constexpr int8_t ext_id = 5; std::array mac; auto as_tuple() const { return std::tie(mac); } auto as_tuple() { return std::tie(mac); } }; struct DeviceError { static constexpr int8_t ext_id = 3; uint32_t code; std::string message; auto as_tuple() const { return std::tie(code, message); } auto as_tuple() { return std::tie(code, message); } }; struct Envelope { static constexpr int8_t ext_id = 0; uint32_t message_id; uint32_t checksum; std::vector payload; auto as_tuple() const { return std::tie(message_id, checksum, payload); } auto as_tuple() { return std::tie(message_id, checksum, payload); } };