Commit 50b3fa96 authored by Filip Hauzvic's avatar Filip Hauzvic
Browse files

Serialization util functions

parent e65ddf63
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
#pragma once
// Serialization utilities using Bitsery (https://github.com/fraillt/bitsery/tree/master)
// Can be installed via vcpkg
#include <bitsery/bitsery.h>
#include <bitsery/adapter/buffer.h>
#include <vector>

// Buffer type for serialization
using Buffer = std::vector<uint8_t>;

// Input and Output adapters
using OutputAdapter = bitsery::OutputBufferAdapter<Buffer>;
using InputAdapter = bitsery::InputBufferAdapter<Buffer>;

// Serializer and Deserializer types
using Serializer = bitsery::Serializer<OutputAdapter>;
using Deserializer = bitsery::Deserializer<InputAdapter>;

inline Serializer create_serializer(Buffer& buffer)
{
    return Serializer{ OutputAdapter{ buffer } };
}

inline Deserializer create_deserializer(const Buffer& buffer)
{
    return Deserializer{ InputAdapter{ buffer.cbegin(), buffer.cend() } };
}
 No newline at end of file