/** * Autogenerated by Thrift for thrift/compiler/test/fixtures/mixin/src/module.thrift * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @nocommit */ #include "thrift/compiler/test/fixtures/mixin/gen-cpp2/module_data.h" #include 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<::cpp2::Mixin1>::name = "Mixin1"; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin1>::fields_names = { { "field1"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin1>::fields_ids = { { 1, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin1>::fields_types = { { TType::T_STRING, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin1>::storage_names = { { "__fbthrift_field_field1"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin1>::isset_indexes = { { 0, }}; THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::cpp2::Mixin2>::name = "Mixin2"; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin2>::fields_names = { { "m1"sv, "field2"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin2>::fields_ids = { { 1, 2, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin2>::fields_types = { { TType::T_STRUCT, TType::T_STRING, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin2>::storage_names = { { "__fbthrift_field_m1"sv, "__fbthrift_field_field2"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin2>::isset_indexes = { { 0, 1, }}; THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::cpp2::Mixin3Base>::name = "Mixin3Base"; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin3Base>::fields_names = { { "field3"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin3Base>::fields_ids = { { 1, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin3Base>::fields_types = { { TType::T_STRING, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin3Base>::storage_names = { { "__fbthrift_field_field3"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Mixin3Base>::isset_indexes = { { 0, }}; THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::cpp2::Foo>::name = "Foo"; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Foo>::fields_names = { { "field4"sv, "m2"sv, "m3"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Foo>::fields_ids = { { 1, 2, 3, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Foo>::fields_types = { { TType::T_STRING, TType::T_STRUCT, TType::T_STRUCT, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Foo>::storage_names = { { "__fbthrift_field_field4"sv, "__fbthrift_field_m2"sv, "__fbthrift_field_m3"sv, }}; THRIFT_DATA_MEMBER const std::array TStructDataStorage<::cpp2::Foo>::isset_indexes = { { 0, 1, 2, }}; } // namespace thrift } // namespace apache