8#include "nlohmann/json.hpp"
9#include "../api/utils/ptr_wrapper.h"
11namespace fpmas {
namespace io {
namespace json {
12 using api::utils::PtrWrapper;
14 template<
typename T,
typename>
struct light_serializer;
28 typedef nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, light_serializer>
light_json;
93 template<
typename T,
typename Enable =
void>
108 nlohmann::adl_serializer<T>::to_json(j, data);
124 nlohmann::adl_serializer<T>::from_json(j, data);
136 struct light_serializer<T, typename std::enable_if<!std::is_default_constructible<T>::value>::type> {
150 nlohmann::adl_serializer<T>::to_json(j, data);
166 return nlohmann::adl_serializer<T>::from_json(j);
nlohmann::basic_json< std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, light_serializer > light_json
Definition: json.h:14
static void to_json(light_json &j, const T &data)
Definition: json.h:149
static T from_json(const light_json &j)
Definition: json.h:165
static void from_json(const light_json &j, T &data)
Definition: json.h:123
static void to_json(light_json &j, const T &data)
Definition: json.h:107