summaryrefslogtreecommitdiff
path: root/src/utils/cpp/json.hpp
diff options
context:
space:
mode:
authorMichael Thies <mail@mhthies.de>2023-08-27 18:58:03 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2023-08-28 18:34:16 +0200
commit6db13ba3f77ecf38ec1b54d6607efbb016cefce4 (patch)
tree085b73d32d02079ab8df42aa74c08eb32f97cfbf /src/utils/cpp/json.hpp
parenta8fc8aaa0e4f6f1d8b928829fc19650b28815558 (diff)
downloadjustbuild-6db13ba3f77ecf38ec1b54d6607efbb016cefce4.tar.gz
Add explicit fmt::formatter for nlohmann::basic_json
The formatter is based on fmt's ostream_formatter, using the provided operator<<(std::ostream&) of nlohmann::basic_json. This is required to allow compilation against fmt 10.x (cherry picked from 601d546b8452159c38d65231d52f0dbd05e793d2) Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
Diffstat (limited to 'src/utils/cpp/json.hpp')
-rw-r--r--src/utils/cpp/json.hpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/utils/cpp/json.hpp b/src/utils/cpp/json.hpp
index aed2f3f4..9fd2d66d 100644
--- a/src/utils/cpp/json.hpp
+++ b/src/utils/cpp/json.hpp
@@ -21,6 +21,7 @@
#include <string>
#include <unordered_map>
+#include "fmt/ostream.h"
#include "gsl/gsl"
#include "nlohmann/json.hpp"
#include "src/utils/cpp/gsl.hpp"
@@ -212,4 +213,10 @@ namespace detail {
return old_abbrev;
}
+// Use nlohmann::basic_json::operator<<() for formatting via libfmt.
+// This explicit template specialization seems to be required starting with
+// libfmt 10.x.
+template <>
+struct fmt::formatter<nlohmann::basic_json<>> : ostream_formatter {};
+
#endif // INCLUDED_SRC_UTILS_CPP_JSON_HPP