#pragma once
///@file

#include <nlohmann/json_fwd.hpp>

// Following https://github.com/nlohmann/json#how-can-i-use-get-for-non-default-constructiblenon-copyable-types
#define JSON_IMPL(TYPE)                                                \
    namespace nlohmann {                                               \
        using namespace nix;                                           \
        template <>                                                    \
        struct adl_serializer<TYPE> {                                  \
            static TYPE from_json(const json & json);                  \
            static void to_json(json & json, TYPE t);                  \
        };                                                             \
    }
