/**
 * Autogenerated by Thrift for thrift/compiler/test/fixtures/visitation/src/module.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated @nocommit
 */

#include "thrift/compiler/test/fixtures/visitation/gen-cpp2/module_data.h"

#include <thrift/lib/cpp2/gen/module_data_cpp.h>

FOLLY_CLANG_DISABLE_WARNING("-Wunused-macros")

#if defined(__GNUC__) && defined(__linux__) && !FOLLY_MOBILE
// These attributes are applied to the static data members to ensure that they
// are not stripped from the compiled binary, in order to keep them available
// for use by debuggers at runtime.
//
// The "used" attribute is required to ensure the compiler always emits unused
// data.
//
// The "section" attribute is required to stop the linker from stripping used
// data. It works by forcing all of the data members (both used and unused ones)
// into the same section. As the linker strips data on a per-section basis, it
// is then unable to remove unused data without also removing used data.
// This has a similar effect to the "retain" attribute, but works with older
// toolchains.
#define THRIFT_DATA_MEMBER [[gnu::used]] [[gnu::section(".rodata.thrift.data")]]
#else
#define THRIFT_DATA_MEMBER
#endif

namespace apache {
namespace thrift {

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::union1>::name = "union1";
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union1>::fields_names = { {
  "ui"sv,
  "ud"sv,
  "us"sv,
  "ue"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union1>::fields_ids = { {
  1,
  2,
  3,
  4,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union1>::fields_types = { {
  TType::T_I32,
  TType::T_DOUBLE,
  TType::T_STRING,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union1>::storage_names = { {
  "ui"sv,
  "ud"sv,
  "us"sv,
  "ue"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union1>::isset_indexes = { {
  0,
  1,
  2,
  3,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::union2>::name = "union2";
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union2>::fields_names = { {
  "ui_2"sv,
  "ud_2"sv,
  "us_2"sv,
  "ue_2"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union2>::fields_ids = { {
  1,
  2,
  3,
  4,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union2>::fields_types = { {
  TType::T_I32,
  TType::T_DOUBLE,
  TType::T_STRING,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union2>::storage_names = { {
  "ui_2"sv,
  "ud_2"sv,
  "us_2"sv,
  "ue_2"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union2>::isset_indexes = { {
  0,
  1,
  2,
  3,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::union3>::name = "union3";
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union3>::fields_names = { {
  "ui_3"sv,
  "ud_3"sv,
  "us_3"sv,
  "ue_3"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union3>::fields_ids = { {
  1,
  2,
  3,
  4,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union3>::fields_types = { {
  TType::T_I32,
  TType::T_DOUBLE,
  TType::T_STRING,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union3>::storage_names = { {
  "ui_3"sv,
  "ud_3"sv,
  "us_3"sv,
  "ue_3"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 4> TStructDataStorage<::test_cpp2::cpp_reflection::union3>::isset_indexes = { {
  0,
  1,
  2,
  3,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::structA>::name = "structA";
THRIFT_DATA_MEMBER const std::array<std::string_view, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structA>::fields_names = { {
  "a"sv,
  "b"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structA>::fields_ids = { {
  1,
  2,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structA>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structA>::storage_names = { {
  "__fbthrift_field_a"sv,
  "__fbthrift_field_b"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structA>::isset_indexes = { {
  0,
  1,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::unionA>::name = "unionA";
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test_cpp2::cpp_reflection::unionA>::fields_names = { {
  "i"sv,
  "d"sv,
  "s"sv,
  "e"sv,
  "a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 5> TStructDataStorage<::test_cpp2::cpp_reflection::unionA>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 5> TStructDataStorage<::test_cpp2::cpp_reflection::unionA>::fields_types = { {
  TType::T_I32,
  TType::T_DOUBLE,
  TType::T_STRING,
  TType::T_I32,
  TType::T_STRUCT,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test_cpp2::cpp_reflection::unionA>::storage_names = { {
  "i"sv,
  "d"sv,
  "s"sv,
  "e"sv,
  "a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 5> TStructDataStorage<::test_cpp2::cpp_reflection::unionA>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::structB>::name = "structB";
THRIFT_DATA_MEMBER const std::array<std::string_view, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structB>::fields_names = { {
  "c"sv,
  "d"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structB>::fields_ids = { {
  1,
  2,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structB>::fields_types = { {
  TType::T_DOUBLE,
  TType::T_BOOL,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structB>::storage_names = { {
  "__fbthrift_field_c"sv,
  "__fbthrift_field_d"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 2> TStructDataStorage<::test_cpp2::cpp_reflection::structB>::isset_indexes = { {
  0,
  1,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::structC>::name = "structC";
THRIFT_DATA_MEMBER const std::array<std::string_view, 30> TStructDataStorage<::test_cpp2::cpp_reflection::structC>::fields_names = { {
  "a"sv,
  "b"sv,
  "c"sv,
  "d"sv,
  "e"sv,
  "f"sv,
  "g"sv,
  "h"sv,
  "i"sv,
  "j"sv,
  "j1"sv,
  "j2"sv,
  "j3"sv,
  "k"sv,
  "k1"sv,
  "k2"sv,
  "k3"sv,
  "l"sv,
  "l1"sv,
  "l2"sv,
  "l3"sv,
  "m1"sv,
  "m2"sv,
  "m3"sv,
  "n1"sv,
  "n2"sv,
  "n3"sv,
  "o1"sv,
  "o2"sv,
  "o3"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 30> TStructDataStorage<::test_cpp2::cpp_reflection::structC>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 30> TStructDataStorage<::test_cpp2::cpp_reflection::structC>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
  TType::T_DOUBLE,
  TType::T_BOOL,
  TType::T_I32,
  TType::T_I32,
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
  TType::T_MAP,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 30> TStructDataStorage<::test_cpp2::cpp_reflection::structC>::storage_names = { {
  "__fbthrift_field_a"sv,
  "__fbthrift_field_b"sv,
  "__fbthrift_field_c"sv,
  "__fbthrift_field_d"sv,
  "__fbthrift_field_e"sv,
  "__fbthrift_field_f"sv,
  "__fbthrift_field_g"sv,
  "__fbthrift_field_h"sv,
  "__fbthrift_field_i"sv,
  "__fbthrift_field_j"sv,
  "__fbthrift_field_j1"sv,
  "__fbthrift_field_j2"sv,
  "__fbthrift_field_j3"sv,
  "__fbthrift_field_k"sv,
  "__fbthrift_field_k1"sv,
  "__fbthrift_field_k2"sv,
  "__fbthrift_field_k3"sv,
  "__fbthrift_field_l"sv,
  "__fbthrift_field_l1"sv,
  "__fbthrift_field_l2"sv,
  "__fbthrift_field_l3"sv,
  "__fbthrift_field_m1"sv,
  "__fbthrift_field_m2"sv,
  "__fbthrift_field_m3"sv,
  "__fbthrift_field_n1"sv,
  "__fbthrift_field_n2"sv,
  "__fbthrift_field_n3"sv,
  "__fbthrift_field_o1"sv,
  "__fbthrift_field_o2"sv,
  "__fbthrift_field_o3"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 30> TStructDataStorage<::test_cpp2::cpp_reflection::structC>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct1>::name = "struct1";
THRIFT_DATA_MEMBER const std::array<std::string_view, 6> TStructDataStorage<::test_cpp2::cpp_reflection::struct1>::fields_names = { {
  "field0"sv,
  "field1"sv,
  "field2"sv,
  "field3"sv,
  "field4"sv,
  "field5"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 6> TStructDataStorage<::test_cpp2::cpp_reflection::struct1>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 6> TStructDataStorage<::test_cpp2::cpp_reflection::struct1>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
  TType::T_I32,
  TType::T_I32,
  TType::T_STRUCT,
  TType::T_STRUCT,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 6> TStructDataStorage<::test_cpp2::cpp_reflection::struct1>::storage_names = { {
  "__fbthrift_field_field0"sv,
  "__fbthrift_field_field1"sv,
  "__fbthrift_field_field2"sv,
  "__fbthrift_field_field3"sv,
  "__fbthrift_field_field4"sv,
  "__fbthrift_field_field5"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 6> TStructDataStorage<::test_cpp2::cpp_reflection::struct1>::isset_indexes = { {
  -1,
  0,
  1,
  -1,
  2,
  3,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct2>::name = "struct2";
THRIFT_DATA_MEMBER const std::array<std::string_view, 7> TStructDataStorage<::test_cpp2::cpp_reflection::struct2>::fields_names = { {
  "fieldA"sv,
  "fieldB"sv,
  "fieldC"sv,
  "fieldD"sv,
  "fieldE"sv,
  "fieldF"sv,
  "fieldG"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 7> TStructDataStorage<::test_cpp2::cpp_reflection::struct2>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 7> TStructDataStorage<::test_cpp2::cpp_reflection::struct2>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
  TType::T_I32,
  TType::T_I32,
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_STRUCT,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 7> TStructDataStorage<::test_cpp2::cpp_reflection::struct2>::storage_names = { {
  "__fbthrift_field_fieldA"sv,
  "__fbthrift_field_fieldB"sv,
  "__fbthrift_field_fieldC"sv,
  "__fbthrift_field_fieldD"sv,
  "__fbthrift_field_fieldE"sv,
  "__fbthrift_field_fieldF"sv,
  "__fbthrift_field_fieldG"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 7> TStructDataStorage<::test_cpp2::cpp_reflection::struct2>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct3>::name = "struct3";
THRIFT_DATA_MEMBER const std::array<std::string_view, 18> TStructDataStorage<::test_cpp2::cpp_reflection::struct3>::fields_names = { {
  "fieldA"sv,
  "fieldB"sv,
  "fieldC"sv,
  "fieldD"sv,
  "fieldE"sv,
  "fieldF"sv,
  "fieldG"sv,
  "fieldH"sv,
  "fieldI"sv,
  "fieldJ"sv,
  "fieldK"sv,
  "fieldL"sv,
  "fieldM"sv,
  "fieldN"sv,
  "fieldO"sv,
  "fieldP"sv,
  "fieldQ"sv,
  "fieldR"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 18> TStructDataStorage<::test_cpp2::cpp_reflection::struct3>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 18> TStructDataStorage<::test_cpp2::cpp_reflection::struct3>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
  TType::T_I32,
  TType::T_I32,
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_MAP,
  TType::T_MAP,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 18> TStructDataStorage<::test_cpp2::cpp_reflection::struct3>::storage_names = { {
  "__fbthrift_field_fieldA"sv,
  "__fbthrift_field_fieldB"sv,
  "__fbthrift_field_fieldC"sv,
  "__fbthrift_field_fieldD"sv,
  "__fbthrift_field_fieldE"sv,
  "__fbthrift_field_fieldF"sv,
  "__fbthrift_field_fieldG"sv,
  "__fbthrift_field_fieldH"sv,
  "__fbthrift_field_fieldI"sv,
  "__fbthrift_field_fieldJ"sv,
  "__fbthrift_field_fieldK"sv,
  "__fbthrift_field_fieldL"sv,
  "__fbthrift_field_fieldM"sv,
  "__fbthrift_field_fieldN"sv,
  "__fbthrift_field_fieldO"sv,
  "__fbthrift_field_fieldP"sv,
  "__fbthrift_field_fieldQ"sv,
  "__fbthrift_field_fieldR"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 18> TStructDataStorage<::test_cpp2::cpp_reflection::struct3>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct4>::name = "struct4";
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::struct4>::fields_names = { {
  "field0"sv,
  "field1"sv,
  "field2"sv,
  "field3"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 4> TStructDataStorage<::test_cpp2::cpp_reflection::struct4>::fields_ids = { {
  1,
  2,
  3,
  6,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 4> TStructDataStorage<::test_cpp2::cpp_reflection::struct4>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
  TType::T_I32,
  TType::T_STRUCT,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 4> TStructDataStorage<::test_cpp2::cpp_reflection::struct4>::storage_names = { {
  "__fbthrift_field_field0"sv,
  "__fbthrift_field_field1"sv,
  "__fbthrift_field_field2"sv,
  "__fbthrift_field_field3"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 4> TStructDataStorage<::test_cpp2::cpp_reflection::struct4>::isset_indexes = { {
  -1,
  0,
  1,
  -1,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct5>::name = "struct5";
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct5>::fields_names = { {
  "field0"sv,
  "field1"sv,
  "field2"sv,
  "field3"sv,
  "field4"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct5>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct5>::fields_types = { {
  TType::T_I32,
  TType::T_STRING,
  TType::T_I32,
  TType::T_STRUCT,
  TType::T_STRUCT,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct5>::storage_names = { {
  "__fbthrift_field_field0"sv,
  "__fbthrift_field_field1"sv,
  "__fbthrift_field_field2"sv,
  "__fbthrift_field_field3"sv,
  "__fbthrift_field_field4"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct5>::isset_indexes = { {
  -1,
  0,
  1,
  2,
  3,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct_binary>::name = "struct_binary";
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test_cpp2::cpp_reflection::struct_binary>::fields_names = { {
  "bi"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 1> TStructDataStorage<::test_cpp2::cpp_reflection::struct_binary>::fields_ids = { {
  1,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 1> TStructDataStorage<::test_cpp2::cpp_reflection::struct_binary>::fields_types = { {
  TType::T_STRING,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test_cpp2::cpp_reflection::struct_binary>::storage_names = { {
  "__fbthrift_field_bi"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 1> TStructDataStorage<::test_cpp2::cpp_reflection::struct_binary>::isset_indexes = { {
  0,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::dep_A_struct>::name = "dep_A_struct";
THRIFT_DATA_MEMBER const std::array<std::string_view, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_A_struct>::fields_names = { {
  "b"sv,
  "c"sv,
  "i_a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_A_struct>::fields_ids = { {
  1,
  2,
  3,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_A_struct>::fields_types = { {
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_A_struct>::storage_names = { {
  "__fbthrift_field_b"sv,
  "__fbthrift_field_c"sv,
  "__fbthrift_field_i_a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_A_struct>::isset_indexes = { {
  0,
  1,
  2,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::dep_B_struct>::name = "dep_B_struct";
THRIFT_DATA_MEMBER const std::array<std::string_view, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_B_struct>::fields_names = { {
  "b"sv,
  "c"sv,
  "i_a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_B_struct>::fields_ids = { {
  1,
  2,
  3,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_B_struct>::fields_types = { {
  TType::T_STRUCT,
  TType::T_STRUCT,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_B_struct>::storage_names = { {
  "__fbthrift_field_b"sv,
  "__fbthrift_field_c"sv,
  "__fbthrift_field_i_a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 3> TStructDataStorage<::test_cpp2::cpp_reflection::dep_B_struct>::isset_indexes = { {
  0,
  1,
  2,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::annotated>::name = "annotated";
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test_cpp2::cpp_reflection::annotated>::fields_names = { {
  "a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 1> TStructDataStorage<::test_cpp2::cpp_reflection::annotated>::fields_ids = { {
  1,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 1> TStructDataStorage<::test_cpp2::cpp_reflection::annotated>::fields_types = { {
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test_cpp2::cpp_reflection::annotated>::storage_names = { {
  "__fbthrift_field_a"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 1> TStructDataStorage<::test_cpp2::cpp_reflection::annotated>::isset_indexes = { {
  0,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::union_with_special_names>::name = "union_with_special_names";
THRIFT_DATA_MEMBER const std::array<std::string_view, 28> TStructDataStorage<::test_cpp2::cpp_reflection::union_with_special_names>::fields_names = { {
  "get"sv,
  "getter"sv,
  "lists"sv,
  "maps"sv,
  "name"sv,
  "name_to_value"sv,
  "names"sv,
  "prefix_tree"sv,
  "sets"sv,
  "setter"sv,
  "str"sv,
  "strings"sv,
  "type"sv,
  "value"sv,
  "value_to_name"sv,
  "values"sv,
  "id"sv,
  "ids"sv,
  "descriptor"sv,
  "descriptors"sv,
  "key"sv,
  "keys"sv,
  "annotation"sv,
  "annotations"sv,
  "member"sv,
  "members"sv,
  "field"sv,
  "fields"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 28> TStructDataStorage<::test_cpp2::cpp_reflection::union_with_special_names>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 28> TStructDataStorage<::test_cpp2::cpp_reflection::union_with_special_names>::fields_types = { {
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 28> TStructDataStorage<::test_cpp2::cpp_reflection::union_with_special_names>::storage_names = { {
  "get"sv,
  "getter"sv,
  "lists"sv,
  "maps"sv,
  "name"sv,
  "name_to_value"sv,
  "names"sv,
  "prefix_tree"sv,
  "sets"sv,
  "setter"sv,
  "str"sv,
  "strings"sv,
  "type"sv,
  "value"sv,
  "value_to_name"sv,
  "values"sv,
  "id"sv,
  "ids"sv,
  "descriptor"sv,
  "descriptors"sv,
  "key"sv,
  "keys"sv,
  "annotation"sv,
  "annotations"sv,
  "member"sv,
  "members"sv,
  "field"sv,
  "fields"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 28> TStructDataStorage<::test_cpp2::cpp_reflection::union_with_special_names>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_special_names>::name = "struct_with_special_names";
THRIFT_DATA_MEMBER const std::array<std::string_view, 28> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_special_names>::fields_names = { {
  "get"sv,
  "getter"sv,
  "lists"sv,
  "maps"sv,
  "name"sv,
  "name_to_value"sv,
  "names"sv,
  "prefix_tree"sv,
  "sets"sv,
  "setter"sv,
  "str"sv,
  "strings"sv,
  "type"sv,
  "value"sv,
  "value_to_name"sv,
  "values"sv,
  "id"sv,
  "ids"sv,
  "descriptor"sv,
  "descriptors"sv,
  "key"sv,
  "keys"sv,
  "annotation"sv,
  "annotations"sv,
  "member"sv,
  "members"sv,
  "field"sv,
  "fields"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 28> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_special_names>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 28> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_special_names>::fields_types = { {
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 28> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_special_names>::storage_names = { {
  "__fbthrift_field_get"sv,
  "__fbthrift_field_getter"sv,
  "__fbthrift_field_lists"sv,
  "__fbthrift_field_maps"sv,
  "__fbthrift_field_name"sv,
  "__fbthrift_field_name_to_value"sv,
  "__fbthrift_field_names"sv,
  "__fbthrift_field_prefix_tree"sv,
  "__fbthrift_field_sets"sv,
  "__fbthrift_field_setter"sv,
  "__fbthrift_field_str"sv,
  "__fbthrift_field_strings"sv,
  "__fbthrift_field_type"sv,
  "__fbthrift_field_value"sv,
  "__fbthrift_field_value_to_name"sv,
  "__fbthrift_field_values"sv,
  "__fbthrift_field_id"sv,
  "__fbthrift_field_ids"sv,
  "__fbthrift_field_descriptor"sv,
  "__fbthrift_field_descriptors"sv,
  "__fbthrift_field_key"sv,
  "__fbthrift_field_keys"sv,
  "__fbthrift_field_annotation"sv,
  "__fbthrift_field_annotations"sv,
  "__fbthrift_field_member"sv,
  "__fbthrift_field_members"sv,
  "__fbthrift_field_field"sv,
  "__fbthrift_field_fields"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 28> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_special_names>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_indirections>::name = "struct_with_indirections";
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_indirections>::fields_names = { {
  "real"sv,
  "fake"sv,
  "number"sv,
  "result"sv,
  "phrase"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_indirections>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_indirections>::fields_types = { {
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_I32,
  TType::T_STRING,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_indirections>::storage_names = { {
  "__fbthrift_field_real"sv,
  "__fbthrift_field_fake"sv,
  "__fbthrift_field_number"sv,
  "__fbthrift_field_result"sv,
  "__fbthrift_field_phrase"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 5> TStructDataStorage<::test_cpp2::cpp_reflection::struct_with_indirections>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
}};

} // namespace thrift
} // namespace apache
