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

#include "thrift/compiler/test/fixtures/python_capi/gen-cpp2/containers_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::fixtures::python_capi::TemplateLists>::name = "TemplateLists";
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test::fixtures::python_capi::TemplateLists>::fields_names = { {
  "std_string"sv,
  "deque_string"sv,
  "small_vector_iobuf"sv,
  "nested_small_vector"sv,
  "small_vector_tensor"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 5> TStructDataStorage<::test::fixtures::python_capi::TemplateLists>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 5> TStructDataStorage<::test::fixtures::python_capi::TemplateLists>::fields_types = { {
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
  TType::T_LIST,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 5> TStructDataStorage<::test::fixtures::python_capi::TemplateLists>::storage_names = { {
  "__fbthrift_field_std_string"sv,
  "__fbthrift_field_deque_string"sv,
  "__fbthrift_field_small_vector_iobuf"sv,
  "__fbthrift_field_nested_small_vector"sv,
  "__fbthrift_field_small_vector_tensor"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 5> TStructDataStorage<::test::fixtures::python_capi::TemplateLists>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test::fixtures::python_capi::TemplateSets>::name = "TemplateSets";
THRIFT_DATA_MEMBER const std::array<std::string_view, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateSets>::fields_names = { {
  "std_set"sv,
  "std_unordered"sv,
  "folly_fast"sv,
  "folly_node"sv,
  "folly_value"sv,
  "folly_vector"sv,
  "folly_sorted_vector"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateSets>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateSets>::fields_types = { {
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
  TType::T_SET,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateSets>::storage_names = { {
  "__fbthrift_field_std_set"sv,
  "__fbthrift_field_std_unordered"sv,
  "__fbthrift_field_folly_fast"sv,
  "__fbthrift_field_folly_node"sv,
  "__fbthrift_field_folly_value"sv,
  "__fbthrift_field_folly_vector"sv,
  "__fbthrift_field_folly_sorted_vector"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateSets>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test::fixtures::python_capi::TemplateMaps>::name = "TemplateMaps";
THRIFT_DATA_MEMBER const std::array<std::string_view, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateMaps>::fields_names = { {
  "std_map"sv,
  "std_unordered"sv,
  "folly_fast"sv,
  "folly_node"sv,
  "folly_value"sv,
  "folly_vector"sv,
  "folly_sorted_vector"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateMaps>::fields_ids = { {
  1,
  2,
  3,
  4,
  5,
  6,
  7,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateMaps>::fields_types = { {
  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, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateMaps>::storage_names = { {
  "__fbthrift_field_std_map"sv,
  "__fbthrift_field_std_unordered"sv,
  "__fbthrift_field_folly_fast"sv,
  "__fbthrift_field_folly_node"sv,
  "__fbthrift_field_folly_value"sv,
  "__fbthrift_field_folly_vector"sv,
  "__fbthrift_field_folly_sorted_vector"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 7> TStructDataStorage<::test::fixtures::python_capi::TemplateMaps>::isset_indexes = { {
  0,
  1,
  2,
  3,
  4,
  5,
  6,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test::fixtures::python_capi::TWrapped>::name = "TWrapped";
THRIFT_DATA_MEMBER const std::array<std::string_view, 2> TStructDataStorage<::test::fixtures::python_capi::TWrapped>::fields_names = { {
  "fieldA"sv,
  "fieldB"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 2> TStructDataStorage<::test::fixtures::python_capi::TWrapped>::fields_ids = { {
  1,
  2,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 2> TStructDataStorage<::test::fixtures::python_capi::TWrapped>::fields_types = { {
  TType::T_STRING,
  TType::T_STRING,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 2> TStructDataStorage<::test::fixtures::python_capi::TWrapped>::storage_names = { {
  "__fbthrift_field_fieldA"sv,
  "__fbthrift_field_fieldB"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 2> TStructDataStorage<::test::fixtures::python_capi::TWrapped>::isset_indexes = { {
  0,
  1,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test::fixtures::python_capi::IndirectionA>::name = "IndirectionA";
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionA>::fields_names = { {
  "lst"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionA>::fields_ids = { {
  1,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionA>::fields_types = { {
  TType::T_LIST,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionA>::storage_names = { {
  "__fbthrift_field_lst"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionA>::isset_indexes = { {
  0,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test::fixtures::python_capi::IndirectionB>::name = "IndirectionB";
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionB>::fields_names = { {
  "lst"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionB>::fields_ids = { {
  1,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionB>::fields_types = { {
  TType::T_LIST,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionB>::storage_names = { {
  "__fbthrift_field_lst"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionB>::isset_indexes = { {
  0,
}};

THRIFT_DATA_MEMBER const std::string_view TStructDataStorage<::test::fixtures::python_capi::IndirectionC>::name = "IndirectionC";
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionC>::fields_names = { {
  "lst"sv,
}};
THRIFT_DATA_MEMBER const std::array<int16_t, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionC>::fields_ids = { {
  1,
}};
THRIFT_DATA_MEMBER const std::array<protocol::TType, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionC>::fields_types = { {
  TType::T_LIST,
}};
THRIFT_DATA_MEMBER const std::array<std::string_view, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionC>::storage_names = { {
  "__fbthrift_field_lst"sv,
}};
THRIFT_DATA_MEMBER const std::array<int, 1> TStructDataStorage<::test::fixtures::python_capi::IndirectionC>::isset_indexes = { {
  0,
}};

} // namespace thrift
} // namespace apache
