Commit 850d857a authored by aligungr's avatar aligungr

JSON utility improvement

parent c1f7cc22
......@@ -360,3 +360,59 @@ Json Json::Obj(std::initializer_list<std::pair<std::string, Json>> &&elements)
json.m_children[item.first] = item.second;
return json;
}
Json ToJson(nullptr_t)
{
return nullptr;
}
Json ToJson(bool v)
{
return v;
}
Json ToJson(const std::string &v)
{
return v;
}
Json ToJson(const char *v)
{
return v;
}
Json ToJson(uint8_t v)
{
return v;
}
Json ToJson(int8_t v)
{
return v;
}
Json ToJson(uint16_t v)
{
return v;
}
Json ToJson(int16_t v)
{
return v;
}
Json ToJson(uint32_t v)
{
return v;
}
Json ToJson(int32_t v)
{
return v;
}
Json ToJson(int64_t v)
{
return v;
}
......@@ -10,6 +10,7 @@
#include <initializer_list>
#include <map>
#include <optional>
#include <string>
#include <utility>
......@@ -84,3 +85,21 @@ class Json
[[nodiscard]] std::string dumpJson() const;
[[nodiscard]] std::string dumpYaml() const;
};
Json ToJson(nullptr_t);
Json ToJson(bool v);
Json ToJson(const std::string &v);
Json ToJson(const char *v);
Json ToJson(uint8_t v);
Json ToJson(int8_t v);
Json ToJson(uint16_t v);
Json ToJson(int16_t v);
Json ToJson(uint32_t v);
Json ToJson(int32_t v);
Json ToJson(int64_t v);
template <typename T>
inline Json ToJson(const std::optional<T> &v)
{
return v.has_value() ? ToJson(*v) : Json{nullptr};
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment