2021-10-10 21:26:30 +01:00
|
|
|
#include "stdafx.h"
|
|
|
|
#include "state_t.h"
|
|
|
|
#include <cassert>
|
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
#ifdef USE_SIMDJSON_JSON
|
2021-10-11 14:59:23 +01:00
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
state_t::state_t(const simdjson::dom::element serialised)
|
|
|
|
: m_pc((uint16_t)(uint64_t)serialised["pc"]),
|
|
|
|
m_s((uint8_t)(uint64_t)serialised["s"]),
|
|
|
|
m_a((uint8_t)(uint64_t)serialised["a"]),
|
|
|
|
m_x((uint8_t)(uint64_t)serialised["x"]),
|
|
|
|
m_y((uint8_t)(uint64_t)serialised["y"]),
|
2021-10-18 13:12:22 +01:00
|
|
|
m_p((uint8_t)(uint64_t)serialised["p"]),
|
|
|
|
m_ram(serialised["ram"].get_array()) {}
|
2021-10-11 14:59:23 +01:00
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
#endif
|
2021-10-10 21:26:30 +01:00
|
|
|
|
2021-10-19 00:39:26 +01:00
|
|
|
#ifdef USE_RAPIDJSON_JSON
|
|
|
|
|
|
|
|
state_t::state_t(const rapidjson::Value& serialised)
|
|
|
|
: m_pc((uint16_t)serialised["pc"].GetInt64()),
|
|
|
|
m_s((uint8_t)serialised["s"].GetInt64()),
|
|
|
|
m_a((uint8_t)serialised["a"].GetInt64()),
|
|
|
|
m_x((uint8_t)serialised["x"].GetInt64()),
|
|
|
|
m_y((uint8_t)serialised["y"].GetInt64()),
|
|
|
|
m_p((uint8_t)serialised["p"].GetInt64()),
|
2021-10-19 00:59:02 +01:00
|
|
|
m_ram(serialised["ram"]) {}
|
2021-10-19 00:39:26 +01:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
#ifdef USE_BOOST_JSON
|
2021-10-10 21:26:30 +01:00
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
state_t::state_t(const boost::json::object& serialised)
|
2021-10-18 20:40:13 +01:00
|
|
|
: m_pc((uint16_t)serialised.at("pc").get_int64()),
|
|
|
|
m_s((uint8_t)serialised.at("s").get_int64()),
|
|
|
|
m_a((uint8_t)serialised.at("a").get_int64()),
|
|
|
|
m_x((uint8_t)serialised.at("x").get_int64()),
|
|
|
|
m_y((uint8_t)serialised.at("y").get_int64()),
|
|
|
|
m_p((uint8_t)serialised.at("p").get_int64()),
|
2021-10-18 13:12:22 +01:00
|
|
|
m_ram(serialised.at("ram")) {}
|
2021-10-10 21:26:30 +01:00
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
state_t::state_t(const boost::json::value& serialised)
|
|
|
|
: state_t(serialised.as_object()) {}
|
|
|
|
|
2021-10-11 14:59:23 +01:00
|
|
|
#endif
|
2021-10-10 21:26:30 +01:00
|
|
|
|
2021-10-11 14:59:23 +01:00
|
|
|
#ifdef USE_NLOHMANN_JSON
|
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
state_t::state_t(const nlohmann::json& serialised)
|
|
|
|
: m_pc(serialised["pc"].get<uint16_t>()),
|
|
|
|
m_s(serialised["s"].get<uint8_t>()),
|
|
|
|
m_a(serialised["a"].get<uint8_t>()),
|
|
|
|
m_x(serialised["x"].get<uint8_t>()),
|
|
|
|
m_y(serialised["y"].get<uint8_t>()),
|
2021-10-18 13:12:22 +01:00
|
|
|
m_p(serialised["p"].get<uint8_t>()),
|
|
|
|
m_ram(serialised["ram"]) {}
|
2021-10-11 14:59:23 +01:00
|
|
|
|
|
|
|
#endif
|
2021-10-11 19:13:05 +01:00
|
|
|
|
|
|
|
#ifdef USE_JSONCPP_JSON
|
|
|
|
|
2021-10-18 11:54:01 +01:00
|
|
|
state_t::state_t(const Json::Value& serialised)
|
|
|
|
: m_pc(serialised["pc"].asUInt()),
|
|
|
|
m_s(serialised["s"].asUInt()),
|
|
|
|
m_a(serialised["a"].asUInt()),
|
|
|
|
m_x(serialised["x"].asUInt()),
|
|
|
|
m_y(serialised["y"].asUInt()),
|
2021-10-18 13:12:22 +01:00
|
|
|
m_p(serialised["p"].asUInt()),
|
|
|
|
m_ram(serialised["ram"]) {}
|
2021-10-11 22:09:03 +01:00
|
|
|
|
|
|
|
#endif
|