]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: provide fmtlib formatter for ScrubMapBuilder
authorRonen Friedman <rfriedma@redhat.com>
Sat, 22 Nov 2025 14:55:58 +0000 (08:55 -0600)
committerRonen Friedman <rfriedma@redhat.com>
Sun, 30 Nov 2025 07:31:44 +0000 (01:31 -0600)
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index d3b39355d87f287c55b03092d06bed3a4b942700..91adfdd40f6c257387c6b0df5f5c6e4b0562d5ad 100644 (file)
@@ -7389,6 +7389,26 @@ auto ScrubMap::object::generate_test_instances() -> list<object>
   return o;
 }
 
+// -- ScrubMapBuilder --
+
+ostream& operator<<(ostream& out, const ScrubMapBuilder& bldr)
+{
+  return out << bldr.fmt_print();
+}
+
+std::string ScrubMapBuilder::fmt_print() const
+{
+  const string elem = pos < ls.size() ? fmt::format(" {}", ls[pos]) : "";
+  const string byte_pos = data_pos < 0 ? fmt::format(" byte {}", data_pos) : "";
+  const string key = !omap_pos.empty() ? fmt::format(" key {}", omap_pos) : "";
+  const string ret_s = ret ? fmt::format(" ret {}", ret) : "";
+
+  return fmt::format(
+    "({}/{}{} metadata_done {}{}{}{}{})",
+    pos, ls.size(), elem, static_cast<int>(metadata_done),
+    byte_pos, key, (deep ? " deep" : ""), ret_s);
+}
+
 // -- OSDOp --
 
 ostream& operator<<(ostream& out, const OSDOp& op)
index 679aaa7042e1bb4770da9a2b353abc2a973cedc5..8cec83e02f0d208f79255875bb154d1f5ca1a319 100644 (file)
@@ -6649,26 +6649,9 @@ struct ScrubMapBuilder {
     omap_bytes = 0;
   }
 
-  friend std::ostream& operator<<(std::ostream& out, const ScrubMapBuilder& pos) {
-    out << "(" << pos.pos << "/" << pos.ls.size();
-    if (pos.pos < pos.ls.size()) {
-      out << " " << pos.ls[pos.pos];
-    }
-    out << " metadata_done " << pos.metadata_done;
-    if (pos.data_pos < 0) {
-      out << " byte " << pos.data_pos;
-    }
-    if (!pos.omap_pos.empty()) {
-      out << " key " << pos.omap_pos;
-    }
-    if (pos.deep) {
-      out << " deep";
-    }
-    if (pos.ret) {
-      out << " ret " << pos.ret;
-    }
-    return out << ")";
-  }
+  std::string fmt_print() const;
+
+  friend std::ostream& operator<<(std::ostream& out, const ScrubMapBuilder& pos);
 };
 
 struct watch_item_t {