// other in/out arguments) via this struct
};
+namespace fmt {
// the format specifier {D} is used to request debug output
template <>
-struct fmt::formatter<shard_as_auth_t> {
+struct formatter<shard_as_auth_t> {
template <typename ParseContext>
constexpr auto parse(ParseContext& ctx)
{
return it;
}
template <typename FormatContext>
- auto format(shard_as_auth_t const& as_auth, FormatContext& ctx)
+ auto format(shard_as_auth_t const& as_auth, FormatContext& ctx) const
{
if (debug_log) {
// note: 'if' chain, as hard to consistently (on all compilers) avoid some
bool debug_log{false};
};
+} // namespace fmt
struct auth_selection_t {
shard_to_scrubmap_t::iterator auth; ///< an iter into one of this_chunk->maps
}
template <typename FormatContext>
- auto format(auth_selection_t const& aus, FormatContext& ctx)
+ auto format(auth_selection_t const& aus, FormatContext& ctx) const
{
return fmt::format_to(ctx.out(),
" {{AU-S: {}->{:x} OI({:x}:{}) {} dm:{}}} ",
uint64_t logical_to_ondisk_size(uint64_t logical_size) const;
};
+namespace fmt {
+
template <>
-struct fmt::formatter<data_omap_digests_t> {
+struct formatter<data_omap_digests_t> {
constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
template <typename FormatContext>
- auto format(const data_omap_digests_t& dg, FormatContext& ctx)
+ auto format(const data_omap_digests_t& dg, FormatContext& ctx) const
{
// can't use value_or() due to different output types
if (std::get<0>(dg).has_value()) {
};
template <>
-struct fmt::formatter<std::pair<hobject_t, data_omap_digests_t>> {
+struct formatter<std::pair<hobject_t, data_omap_digests_t>> {
constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
template <typename FormatContext>
std::get<1>(x));
}
};
+} // namespace fmt