]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: provide a template for object dumps
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 16 Jan 2024 18:59:47 +0000 (13:59 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 20 Mar 2024 14:56:51 +0000 (10:56 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/common/dout.h

index 6516060c5438eee12bdb6c85d31062c59de5da62..8d05b12fbe2b30ee2499ee110f2b87c48696bae8 100644 (file)
@@ -44,6 +44,18 @@ inline std::ostream& operator<<(std::ostream& out, _bad_endl_use_dendl_t) {
   return out;
 }
 
+template<typename T>
+concept HasPrint = requires(T t, std::ostream& u) {
+  { t.print(u) } -> std::same_as<void>;
+};
+
+template<typename T> requires HasPrint<T>
+static inline std::ostream& operator<<(std::ostream& out, T&& t)
+{
+  t.print(out);
+  return out;
+}
+
 class DoutPrefixProvider {
 public:
   virtual std::ostream& gen_prefix(std::ostream& out) const = 0;