Format all files

This commit is contained in:
2023-08-29 09:26:25 +02:00
parent 25c729de1d
commit c07d09f392
283 changed files with 10375 additions and 8412 deletions

View File

@@ -34,7 +34,6 @@
* Derek Christ
*/
#ifndef DRAMSYS_UTIL_JSON_H
#define DRAMSYS_UTIL_JSON_H
@@ -46,27 +45,31 @@
using json_t = nlohmann::json;
namespace DRAMSys::util {
namespace DRAMSys::util
{
// See https://www.kdab.com/jsonify-with-nlohmann-json/
// Try to set the value of type T into the variant data if it fails, do nothing
template <typename T, typename... Ts>
void variant_from_json(const nlohmann::json &j, std::variant<Ts...> &data)
void variant_from_json(const nlohmann::json& j, std::variant<Ts...>& data)
{
try {
try
{
data = j.get<T>();
} catch (...) {
}
catch (...)
{
}
}
template <typename T>
void optional_to_json(nlohmann::json &j, std::string_view name, const std::optional<T> &value)
void optional_to_json(nlohmann::json& j, std::string_view name, const std::optional<T>& value)
{
if (value)
j[name] = *value;
}
template <class T>
void optional_from_json(const nlohmann::json &j, std::string_view name, std::optional<T> &value)
void optional_from_json(const nlohmann::json& j, std::string_view name, std::optional<T>& value)
{
const auto it = j.find(name);
@@ -76,13 +79,10 @@ void optional_from_json(const nlohmann::json &j, std::string_view name, std::opt
value = std::nullopt;
}
template <typename>
constexpr bool is_optional = false;
template <typename T>
constexpr bool is_optional<std::optional<T>> = true;
template <typename> constexpr bool is_optional = false;
template <typename T> constexpr bool is_optional<std::optional<T>> = true;
template <typename T>
void extended_to_json(const char *key, nlohmann::json &j, const T &value)
template <typename T> void extended_to_json(const char* key, nlohmann::json& j, const T& value)
{
if constexpr (is_optional<T>)
optional_to_json(j, key, value);
@@ -90,8 +90,7 @@ void extended_to_json(const char *key, nlohmann::json &j, const T &value)
j[key] = value;
}
template <typename T>
void extended_from_json(const char *key, const nlohmann::json &j, T &value)
template <typename T> void extended_from_json(const char* key, const nlohmann::json& j, T& value)
{
if constexpr (is_optional<T>)
optional_from_json(j, key, value);
@@ -103,57 +102,65 @@ void extended_from_json(const char *key, const nlohmann::json &j, T &value)
NLOHMANN_JSON_NAMESPACE_BEGIN
template <typename... Ts>
struct adl_serializer<std::variant<Ts...>>
template <typename... Ts> struct adl_serializer<std::variant<Ts...>>
{
static void to_json(nlohmann::json &j, const std::variant<Ts...> &data)
static void to_json(nlohmann::json& j, const std::variant<Ts...>& data)
{
std::visit([&j](const auto &v) { j = v; }, data);
std::visit([&j](const auto& v) { j = v; }, data);
}
static void from_json(const nlohmann::json &j, std::variant<Ts...> &data)
static void from_json(const nlohmann::json& j, std::variant<Ts...>& data)
{
// Call variant_from_json for all types, only one will succeed
(DRAMSys::util::variant_from_json<Ts>(j, data), ...);
}
};
template <typename T>
struct adl_serializer<std::optional<T>> {
static void to_json(json_t& j, const std::optional<T>& opt) {
if (opt == std::nullopt) {
template <typename T> struct adl_serializer<std::optional<T>>
{
static void to_json(json_t& j, const std::optional<T>& opt)
{
if (opt == std::nullopt)
{
j = nullptr;
}
else {
else
{
j = *opt;
}
}
static void from_json(const json_t& j, std::optional<T>& opt) {
if (j.is_null()) {
static void from_json(const json_t& j, std::optional<T>& opt)
{
if (j.is_null())
{
opt = std::nullopt;
}
else {
else
{
opt = j.get<T>();
}
}
};
NLOHMANN_JSON_NAMESPACE_END
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
#define EXTEND_JSON_TO(v1) DRAMSys::util::extended_to_json(#v1, nlohmann_json_j, nlohmann_json_t.v1);
#define EXTEND_JSON_FROM(v1) DRAMSys::util::extended_from_json(#v1, nlohmann_json_j, nlohmann_json_t.v1);
#define NLOHMANN_JSONIFY_ALL_THINGS(Type, ...) \
inline void to_json(nlohmann::json &nlohmann_json_j, const Type &nlohmann_json_t) { \
NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(EXTEND_JSON_TO, __VA_ARGS__)) \
} \
inline void from_json(const nlohmann::json &nlohmann_json_j, Type &nlohmann_json_t) { \
NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(EXTEND_JSON_FROM, __VA_ARGS__)) \
}
#define EXTEND_JSON_TO(v1) \
DRAMSys::util::extended_to_json(#v1, nlohmann_json_j, nlohmann_json_t.v1);
#define EXTEND_JSON_FROM(v1) \
DRAMSys::util::extended_from_json(#v1, nlohmann_json_j, nlohmann_json_t.v1);
#define NLOHMANN_JSONIFY_ALL_THINGS(Type, ...) \
inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) \
{ \
NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(EXTEND_JSON_TO, __VA_ARGS__)) \
} \
inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) \
{ \
NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(EXTEND_JSON_FROM, __VA_ARGS__)) \
}
// NOLINTEND(cppcoreguidelines-macro-usage)

View File

@@ -35,6 +35,7 @@
#include "util.h"
namespace DRAMSys::util {
namespace DRAMSys::util
{
}

View File

@@ -36,8 +36,9 @@
#ifndef DRAMSYS_UTIL_UTIL_H
#define DRAMSYS_UTIL_UTIL_H
namespace DRAMSys::util {
namespace DRAMSys::util
{
}
#endif
#endif