20#ifndef ORES_UTILITY_SERIALIZATION_READER_HPP
21#define ORES_UTILITY_SERIALIZATION_READER_HPP
28#include <boost/uuid/uuid.hpp>
29#include "ores.utility/serialization/error_code.hpp"
30#include "ores.utility/uuid/tenant_id.hpp"
32namespace ores::utility::serialization {
40constexpr std::uint32_t MAX_ELEMENT_COUNT = 100'000;
54 static std::expected<std::uint8_t, error_code>
60 static std::expected<std::uint16_t, error_code>
66 static std::expected<std::uint32_t, error_code>
79 static std::expected<std::uint32_t, error_code>
81 std::uint32_t max_count = MAX_ELEMENT_COUNT);
86 static std::expected<std::int64_t, error_code>
92 static std::expected<std::uint64_t, error_code>
100 static std::expected<std::string, error_code>
108 static std::expected<std::string, error_code>
114 static std::expected<boost::uuids::uuid, error_code>
115 read_uuid(std::span<const std::byte>& data);
123 static std::expected<uuid::tenant_id, error_code>
129 static std::expected<bool, error_code>
130 read_bool(std::span<const std::byte>& data);
Helper class to read binary data in network byte order.
Definition reader.hpp:49
static std::expected< std::string, error_code > read_string32(std::span< const std::byte > &data)
Read a string with 32-bit length prefix.
Definition reader.cpp:122
static std::expected< boost::uuids::uuid, error_code > read_uuid(std::span< const std::byte > &data)
Read a UUID (16 bytes).
Definition reader.cpp:137
static std::expected< std::uint16_t, error_code > read_uint16(std::span< const std::byte > &data)
Read a 16-bit integer in network byte order.
Definition reader.cpp:37
static std::expected< std::uint32_t, error_code > read_uint32(std::span< const std::byte > &data)
Read a 32-bit integer in network byte order.
Definition reader.cpp:48
static std::expected< uuid::tenant_id, error_code > read_tenant_id(std::span< const std::byte > &data)
Read a tenant_id (16 bytes UUID with validation).
Definition reader.cpp:163
static std::expected< std::uint64_t, error_code > read_uint64(std::span< const std::byte > &data)
Read an unsigned 64-bit integer in network byte order.
Definition reader.cpp:90
static std::expected< bool, error_code > read_bool(std::span< const std::byte > &data)
Read a boolean (1 byte).
Definition reader.cpp:153
static std::expected< std::int64_t, error_code > read_int64(std::span< const std::byte > &data)
Read a signed 64-bit integer in network byte order.
Definition reader.cpp:73
static std::expected< std::string, error_code > read_string(std::span< const std::byte > &data)
Read a string with 16-bit length prefix.
Definition reader.cpp:107
static std::expected< std::uint32_t, error_code > read_count(std::span< const std::byte > &data, std::uint32_t max_count=MAX_ELEMENT_COUNT)
Read a 32-bit count with validation against maximum.
Definition reader.cpp:61
static std::expected< std::uint8_t, error_code > read_uint8(std::span< const std::byte > &data)
Read a single byte.
Definition reader.cpp:27