ATLAS Offline Software
ClusterMessage.icc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #include <format>
5 
6 // Used by std::format to format ClusterMessageType enums
7 template <>
8 struct std::formatter<ClusterMessageType>
9  : public std::formatter<std::string_view> {
10  using formatter<string_view>::formatter;
11  // parse is inherited from formatter<string_view>.
12  template <typename FormatContext>
13  auto format(const ClusterMessageType& mType, FormatContext& ctx) const {
14  string_view str = "ERROR";
15  switch (mType) {
16  case ClusterMessageType::RequestEvent:
17  str = "RequestEvent";
18  break;
19  case ClusterMessageType::ProvideEvent:
20  str = "ProvideEvent";
21  break;
22  case ClusterMessageType::EventsDone:
23  str = "EventsDone";
24  break;
25  case ClusterMessageType::FinalWorkerStatus:
26  str = "FinalWorkerStatus";
27  break;
28  case ClusterMessageType::WorkerError:
29  str = "WorkerError";
30  break;
31  case ClusterMessageType::EmergencyStop:
32  str = "EmergencyStop";
33  break;
34  case ClusterMessageType::Data:
35  str = "Data (Variable Size)";
36  break;
37  case ClusterMessageType::EMPTY:
38  str = "[Empty Message]";
39  break;
40  }
41  return formatter<string_view>::format(str, ctx);
42  }
43 };