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

// fidl_experiment = output_index_json

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

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"

size_t fidl::internal::DisplayError<::test_aliases::ObjType>::Format(
    const ::test_aliases::ObjType& value, char* destination, size_t capacity) {
  const char* member_name = [&]() -> const char* {
    switch (static_cast<uint32_t>(value)) {
      case 0u:
        return "NONE";
      case 4u:
        return "CHANNEL";
      default:
        return "[UNKNOWN]";
    }
  }();
  size_t written = std::snprintf(destination, capacity, "%s.%s (value: %u)",
                                 "test.aliases/obj_type", member_name, static_cast<uint32_t>(value));
  return std::min(written, capacity - 1);
}

#pragma clang diagnostic pop
