#include <boost/intrusive/set.hpp>
#include <boost/intrusive/list.hpp>
+#include <fmt/format.h>
#include "common/sharedptr_registry.hpp"
#include "erasure-code/ErasureCodeInterface.h"
std::ostream &operator<<(std::ostream &lhs,
const ECCommon::RMWPipeline::Op &rhs);
+template <> struct fmt::formatter<ECCommon::RMWPipeline::pipeline_state_t> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECCommon::read_request_t> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECCommon::read_result_t> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECCommon::ReadOp> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECCommon::RMWPipeline::Op> : fmt::ostream_formatter {};
#ifndef ECBMSGTYPES_H
#define ECBMSGTYPES_H
+#include <fmt/format.h>
+
#include "osd_types.h"
#include "include/buffer.h"
#include "os/ObjectStore.h"
std::ostream &operator<<(
std::ostream &lhs, const ECSubReadReply &rhs);
+template <> struct fmt::formatter<ECSubWrite> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECSubWriteReply> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECSubRead> : fmt::ostream_formatter {};
+template <> struct fmt::formatter<ECSubReadReply> : fmt::ostream_formatter {};
+
#endif