60 {
61 os <<
"\"" <<
name <<
"\": ";
62
63 std::visit([&](auto&& val) {
64 using T = std::decay_t<decltype(val)>;
65
66 if constexpr (std::is_same_v<T, std::reference_wrapper<int>>)
67 os << val.get();
68 else if constexpr (std::is_same_v<T, std::reference_wrapper<bool>>)
69 os << (val.get() ? "true" : "false");
70 else if constexpr (std::is_same_v<T, std::reference_wrapper<float>>)
71 os << val.get() << "f";
72 else if constexpr (std::is_same_v<T, std::reference_wrapper<std::string>>)
73 os << "\"" << val.get() << "\"";
74 else if constexpr (std::is_same_v<T, std::reference_wrapper<SerializableObject>>)
75 val.get().ToJson(os, indentLevel);
76 else
77 os << "null";
79 }