diff --git a/src/writer/categorizer/fits_categorizer.cpp b/src/writer/categorizer/fits_categorizer.cpp index fd384b0e..8c5a9dab 100644 --- a/src/writer/categorizer/fits_categorizer.cpp +++ b/src/writer/categorizer/fits_categorizer.cpp @@ -32,7 +32,6 @@ #include #include -#include #include #include @@ -46,26 +45,24 @@ #include #include -namespace std { - -inline ostream& operator<<(ostream& os, endian e) { - switch (e) { - case endian::big: - os << "big"; - break; - case endian::little: - os << "little"; - break; - default: - throw runtime_error("internal error: unhandled endianness value"); - } - return os; -} - -} // namespace std - template <> -struct fmt::formatter : ostream_formatter {}; +struct fmt::formatter : formatter { + template + auto format(std::endian e, FormatContext& ctx) const { + std::string_view sv{""}; + switch (e) { + case std::endian::little: + sv = "little"; + break; + case std::endian::big: + sv = "big"; + break; + default: + throw std::runtime_error("internal error: unhandled endianness value"); + } + return formatter::format(sv, ctx); + } +}; namespace dwarfs::writer { @@ -272,7 +269,7 @@ struct fits_metadata { }; std::ostream& operator<<(std::ostream& os, fits_metadata const& m) { - os << "[" << m.endianness << "-endian, " + os << "[" << fmt::format("{}", m.endianness) << "-endian, " << "bytes=" << static_cast(m.bytes_per_sample) << ", " << "unused=" << static_cast(m.unused_lsb_count) << ", " << "components=" << static_cast(m.component_count) << "]";