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

// fidl_experiment = output_index_json

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

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

::test_escaping::DocCommentWithQuotes::Storage_ test_escaping::DocCommentWithQuotes::CloneStorage_() const {
  return Storage_{
      ::fidl::internal::NaturalClone(storage_.__reserved)};
}

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

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

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

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

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

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

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

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

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

#pragma clang diagnostic pop
