#pragma once

#include <blitz/protocol/Packets.h>
#include <godot_cpp/variant/packed_byte_array.hpp>
#include <memory>

namespace blitz {
namespace protocol {

using PacketPtr = std::unique_ptr<Packet>;

namespace PacketSerializer {

godot::PackedByteArray Serialize(const Packet& a_Packet);

std::unique_ptr<Packet> Deserialize(godot::PackedByteArray& a_Data);

}
}  // namespace protocol
}  // namespace blitz
