/** * Autogenerated by Thrift for thrift/compiler/test/fixtures/complex-union/src/module.thrift * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @nocommit */ #pragma once #include #include "thrift/compiler/test/fixtures/complex-union/gen-cpp2/module_types.h" namespace apache { namespace thrift { template <> struct TEnumDataStorage<::cpp2::ComplexUnion::Type> { using type = ::cpp2::ComplexUnion::Type; static constexpr const std::size_t size = 6; static constexpr std::array values = { { type::intValue, type::stringValue, type::intListValue, type::stringListValue, type::typedefValue, type::stringRef, }}; static constexpr std::array names = { { "intValue"sv, "stringValue"sv, "intListValue"sv, "stringListValue"sv, "typedefValue"sv, "stringRef"sv, }}; }; template <> struct TEnumDataStorage<::cpp2::ListUnion::Type> { using type = ::cpp2::ListUnion::Type; static constexpr const std::size_t size = 2; static constexpr std::array values = { { type::intListValue, type::stringListValue, }}; static constexpr std::array names = { { "intListValue"sv, "stringListValue"sv, }}; }; template <> struct TEnumDataStorage<::cpp2::DataUnion::Type> { using type = ::cpp2::DataUnion::Type; static constexpr const std::size_t size = 2; static constexpr std::array values = { { type::binaryData, type::stringData, }}; static constexpr std::array names = { { "binaryData"sv, "stringData"sv, }}; }; template <> struct TEnumDataStorage<::cpp2::ValUnion::Type> { using type = ::cpp2::ValUnion::Type; static constexpr const std::size_t size = 2; static constexpr std::array values = { { type::v1, type::v2, }}; static constexpr std::array names = { { "v1"sv, "v2"sv, }}; }; template <> struct TEnumDataStorage<::cpp2::VirtualComplexUnion::Type> { using type = ::cpp2::VirtualComplexUnion::Type; static constexpr const std::size_t size = 2; static constexpr std::array values = { { type::thingOne, type::thingTwo, }}; static constexpr std::array names = { { "thingOne"sv, "thingTwo"sv, }}; }; template <> struct TEnumDataStorage<::cpp2::NonCopyableUnion::Type> { using type = ::cpp2::NonCopyableUnion::Type; static constexpr const std::size_t size = 1; static constexpr std::array values = { { type::s, }}; static constexpr std::array names = { { "s"sv, }}; }; template <> struct TStructDataStorage<::cpp2::ComplexUnion> { static constexpr const std::size_t fields_size = 6; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::ListUnion> { static constexpr const std::size_t fields_size = 2; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::DataUnion> { static constexpr const std::size_t fields_size = 2; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::Val> { static constexpr const std::size_t fields_size = 3; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::ValUnion> { static constexpr const std::size_t fields_size = 2; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::VirtualComplexUnion> { static constexpr const std::size_t fields_size = 2; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::NonCopyableStruct> { static constexpr const std::size_t fields_size = 1; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; template <> struct TStructDataStorage<::cpp2::NonCopyableUnion> { static constexpr const std::size_t fields_size = 1; static const std::string_view name; static const std::array fields_names; static const std::array fields_ids; static const std::array fields_types; private: // The following fields describe internal storage metadata, and are private to // prevent user logic from accessing them, but they can be inspected by // debuggers. static const std::array storage_names; // -1 if the field has no isset. static const std::array isset_indexes; }; }} // apache::thrift