From 38282ab590fb71e8889f87b763cdc9f50479cc81 Mon Sep 17 00:00:00 2001 From: Ronen Friedman Date: Sat, 4 Oct 2025 01:30:07 -0500 Subject: [PATCH] osd/scrub: fmtlib formatter for ScrubMapBuilder Signed-off-by: Ronen Friedman --- src/osd/osd_types.cc | 15 +++++++++++++++ src/osd/osd_types.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index fc380d6ba89..1d7a665641d 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -7387,6 +7387,21 @@ auto ScrubMap::object::generate_test_instances() -> list return o; } +std::string ScrubMapBuilder::fmt_print() const +{ + const string dtl_size = (pos < ls.size()) ? fmt::format(" {}", ls[pos]) : ""; + const string dtl_data_pos = + (data_pos < 0) ? "" : fmt::format(" byte {}", data_pos); + const string dtl_omap_pos = + omap_pos.empty() ? "" : fmt::format(" key {}", omap_pos); + const string dtl_deep = deep ? " deep" : ""; + const string dtl_ret = ret ? "" : fmt::format(" {}", ret); + return fmt::format( + "({}/{}{} metadata_done {}{}{}{}{})", pos, ls.size(), dtl_size, + metadata_done, dtl_data_pos, dtl_omap_pos, dtl_deep, dtl_ret); +} + + // -- OSDOp -- ostream& operator<<(ostream& out, const OSDOp& op) diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 4012d727d6e..d7c526874b8 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -6633,6 +6633,8 @@ struct ScrubMapBuilder { omap_bytes = 0; } + std::string fmt_print() const; + friend std::ostream& operator<<(std::ostream& out, const ScrubMapBuilder& pos) { out << "(" << pos.pos << "/" << pos.ls.size(); if (pos.pos < pos.ls.size()) { -- 2.39.5