Capture: add enum to string Bug: 473827155 Change-Id: I6a6a6964ea90e724f8245a75357cee7283a91e67 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/285402 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Shrek Shao <shrekshao@google.com>
diff --git a/src/dawn/replay/Replay.cpp b/src/dawn/replay/Replay.cpp index 59938a6..a337a67 100644 --- a/src/dawn/replay/Replay.cpp +++ b/src/dawn/replay/Replay.cpp
@@ -32,6 +32,7 @@ #include <iostream> #include <memory> #include <ranges> +#include <span> #include <string> #include <utility> #include <variant> @@ -46,6 +47,33 @@ namespace dawn::replay { +namespace schema { +#define DAWN_REPLAY_ENUM_TO_STRING_MEMBER(NAME, ...) \ + case EnumType::NAME: \ + return #NAME; + +#define DAWN_REPLAY_ENUM_TO_STRING(NAME, MEMBERS) \ + const char* EnumToString(schema::NAME value) { \ + using EnumType = NAME; \ + switch (value) { \ + MEMBERS(DAWN_REPLAY_ENUM_TO_STRING_MEMBER) \ + default: \ + return "UNKNOWN"; \ + } \ + } \ + std::ostream& operator<<(std::ostream& os, schema::NAME value) { \ + return os << EnumToString(value); \ + } + +DAWN_REPLAY_OBJECT_TYPES_ENUM(DAWN_REPLAY_ENUM_TO_STRING) +DAWN_REPLAY_COMMAND_BUFFER_COMMANDS_ENUM(DAWN_REPLAY_ENUM_TO_STRING) +DAWN_REPLAY_ROOT_COMMANDS_ENUM(DAWN_REPLAY_ENUM_TO_STRING) + +#undef DAWN_REPLAY_ENUM_TO_STRING_MEMBER +#undef DAWN_REPLAY_ENUM_TO_STRING + +} // namespace schema + class ReplayImpl; Replay::~Replay() = default;