25 #ifndef QUERYENGINE_JSONACCESSORS_H
26 #define QUERYENGINE_JSONACCESSORS_H
28 #include <rapidjson/document.h>
31 inline const rapidjson::Value&
field(
const rapidjson::Value& obj,
32 const char field[]) noexcept {
33 CHECK(obj.IsObject());
34 const auto field_it = obj.FindMember(
field);
35 CHECK(field_it != obj.MemberEnd());
36 return field_it->value;
39 inline const int64_t
json_i64(
const rapidjson::Value& obj) noexcept {
41 return obj.GetInt64();
44 inline const std::string
json_str(
const rapidjson::Value& obj) noexcept {
45 CHECK(obj.IsString());
46 return obj.GetString();
49 inline const bool json_bool(
const rapidjson::Value& obj) noexcept {
54 inline const double json_double(
const rapidjson::Value& obj) noexcept {
55 CHECK(obj.IsDouble());
56 return obj.GetDouble();
59 #endif // QUERYENGINE_JSONACCESSORS_H
const bool json_bool(const rapidjson::Value &obj) noexcept
const std::string json_str(const rapidjson::Value &obj) noexcept
const rapidjson::Value & field(const rapidjson::Value &obj, const char field[]) noexcept
const int64_t json_i64(const rapidjson::Value &obj) noexcept
const double json_double(const rapidjson::Value &obj) noexcept