Screenshots
Example Usage
#include <hexi.h>
#include <array>
#include <vector>
#include <cstddef>
struct LoginPacket {
uint64_t user_id;
uint64_t timestamp;
std::array<uint8_t, 16> ipv6;
};
auto deserialise(std::span<const char> network_buffer) {
hexi::buffer_adaptor adaptor(network_buffer); // wrap the buffer
hexi::binary_stream stream(adaptor); // create a binary stream
// deserialise!
LoginPacket packet;
stream >> packet;
return packet;
}
auto serialise(const LoginPacket& packet) {
std::vector<uint8_t> buffer;
hexi::buffer_adaptor adaptor(buffer); // wrap the buffer
hexi::binary_stream stream(adaptor); // create a binary stream
// serialise!
stream << packet;
return buffer;
}