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

// fidl_experiment = output_index_json

#include <fidl/test.escaping/cpp/wire_types.h>

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

const char* ::test_escaping::wire::kBasic = "'\"\\\n\r\t";

const char* ::test_escaping::wire::kNull = "\x00";

const char* ::test_escaping::wire::kMax = "\U0010ffff";

const char* ::test_escaping::wire::kSmileLiteral = "😀";

const char* ::test_escaping::wire::kSmileLower = "😀";

const char* ::test_escaping::wire::kSmileUpper = "😀";

const char* ::test_escaping::wire::kSmileLeadingZero = "😀";

const char* ::test_escaping::wire::kDollar = "$";

const char* ::test_escaping::wire::kDollarBrace = "${";

#pragma clang diagnostic pop
