29 #include <nlohmann/json.hpp>
42 struct adl_serializer<std::unique_ptr<T>> {
43 static void to_json(json& j,
const std::unique_ptr<T>& opt) {
53 struct adl_serializer<std::shared_ptr<T>> {
54 static void to_json(json& j,
const std::shared_ptr<T>& opt) {
64 struct adl_serializer<std::weak_ptr<T>> {
65 static void to_json(json& j,
const std::weak_ptr<T>& opt) {
66 auto ptr = opt.lock();