1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#pragma once
#include "scripting/lua/LuaValue.h"
#include "scripting/lua/LuaTable.h"
#include "libs/jansson.h"
namespace scripting {
namespace util {
enum class SerializationType : uint8_t {
PlainJson = 0,
};
class LuaValueSerializer {
public:
LuaValueSerializer(luacpp::LuaValue value);
SCP_vector<uint8_t> serialize() const;
private:
json_t* toJson() const;
json_t* tableToJson() const;
static json_t* tableToJsonArray(const luacpp::LuaTable& table);
static json_t* tableToJsonObject(const luacpp::LuaTable& table);
luacpp::LuaValue m_value;
};
} // namespace util
} // namespace scripting
|