mirror-chatterino2/src/util/RapidjsonHelpers.cpp

50 lines
1.3 KiB
C++
Raw Normal View History

2018-06-26 14:09:39 +02:00
#include "util/RapidjsonHelpers.hpp"
#include <rapidjson/prettywriter.h>
namespace chatterino {
namespace rj {
2018-08-15 22:46:20 +02:00
void addMember(rapidjson::Value &obj, const char *key,
rapidjson::Value &&value,
rapidjson::Document::AllocatorType &a)
{
obj.AddMember(rapidjson::Value(key, a).Move(), value, a);
}
2018-08-15 22:46:20 +02:00
void addMember(rapidjson::Value &obj, const char *key,
rapidjson::Value &value,
rapidjson::Document::AllocatorType &a)
{
obj.AddMember(rapidjson::Value(key, a).Move(), value.Move(), a);
}
2018-08-15 22:46:20 +02:00
std::string stringify(const rapidjson::Value &value)
{
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
value.Accept(writer);
2018-08-15 22:46:20 +02:00
return std::string(buffer.GetString());
}
bool getSafeObject(rapidjson::Value &obj, const char *key,
rapidjson::Value &out)
{
if (!checkJsonValue(obj, key))
{
return false;
}
out = obj[key].Move();
return true;
}
bool checkJsonValue(const rapidjson::Value &obj, const char *key)
{
return obj.IsObject() && !obj.IsNull() && obj.HasMember(key);
}
} // namespace rj
} // namespace chatterino