// WARNING: This file is machine generated by fidlgen.

#include <fidl/test.consts/cpp/common_types.h>

namespace test_consts {
extern "C" const fidl_type_t test_consts_EnumTypeTable;
}  // namespace test_consts
size_t fidl::internal::DisplayError<::test_consts::EnumType>::Format(
    const ::test_consts::EnumType& value, char* destination, size_t capacity) {
  const char* name = [&]() -> const char* {
    switch (static_cast<int32_t>(value)) {
      case 1u:
        return "VALUE";
      case 2u:
        return "true";
      default:
        return nullptr;
    }
  }();
  return ::fidl::internal::FormatApplicationError(
      static_cast<int32_t>(value), name,
      &::test_consts::test_consts_EnumTypeTable, destination, capacity);
}
