6#ifndef VERIBLOCK_POP_CPP_PICOJSON_HPP
7#define VERIBLOCK_POP_CPP_PICOJSON_HPP
9#define PICOJSON_USE_INT64
12#pragma warning(push, 0)
15#include <veriblock/pop/third_party/picojson.h>
21#include <veriblock/pop/json.hpp>
27inline picojson::value ToJSON(
const std::string& t) {
28 return picojson::value(t);
33inline picojson::value ToJSON(
const int& t) {
34 return picojson::value((int64_t)t);
39inline picojson::value ToJSON(
const double& t) {
40 return picojson::value(t);
45inline picojson::value ToJSON(
const unsigned int& t) {
46 return picojson::value((int64_t)t);
51inline picojson::value ToJSON(
const picojson::value& t) {
59inline picojson::value makeEmptyObject() {
60 return picojson::value(picojson::object_type,
true);
65inline picojson::value makeEmptyArray() {
66 return picojson::value(picojson::array_type,
true);
71inline void putKV(picojson::value&
object,
72 const std::string& key,
73 const picojson::value& val) {
74 object.get<picojson::object>()[key] = val;
79inline void putStringKV(picojson::value&
object,
80 const std::string& key,
81 const std::string& value) {
82 object.get<picojson::object>()[key] = picojson::value(value);
87inline void putIntKV(picojson::value&
object,
88 const std::string& key,
90 object.get<picojson::object>()[key] = picojson::value(value);
95inline void putNullKV(picojson::value&
object,
const std::string& key) {
96 object.get<picojson::object>()[key] = picojson::value();
101inline void arrayPushBack(picojson::value& array,
const picojson::value& val) {
102 array.get<picojson::array>().push_back(val);
107inline void putBoolKV(picojson::value&
object,
108 const std::string& key,
110 object.get<picojson::object>()[key] = picojson::value(value);