/** * Autogenerated by Thrift for thrift/compiler/test/fixtures/templated-deserialize/src/module.thrift * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @nocommit */ #include #include "thrift/compiler/test/fixtures/templated-deserialize/gen-cpp2/module_metadata.h" // some of these functions can be so large that the compiler gives up optimizing // them - and issues a warning which may be treated as an error! // // these functions are so rarely called that it is probably okay for them not to // be optimized in practice FOLLY_CLANG_DISABLE_WARNING("-Wignored-optimization-argument") namespace apache { namespace thrift { namespace detail { namespace md { using ThriftMetadata = ::apache::thrift::metadata::ThriftMetadata; using ThriftPrimitiveType = ::apache::thrift::metadata::ThriftPrimitiveType; using ThriftType = ::apache::thrift::metadata::ThriftType; using ThriftService = ::apache::thrift::metadata::ThriftService; using ThriftServiceContext = ::apache::thrift::metadata::ThriftServiceContext; using ThriftFunctionGenerator = void (*)(ThriftMetadata&, ThriftService&); void EnumMetadata<::cpp2::MyEnumA>::gen(ThriftMetadata& metadata) { auto res = metadata.enums()->emplace("module.MyEnumA", ::apache::thrift::metadata::ThriftEnum{}); if (!res.second) { return; } ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second; enum_metadata.name() = "module.MyEnumA"; using EnumTraits = TEnumTraits<::cpp2::MyEnumA>; for (std::size_t i = 0; i != EnumTraits::size; ++i) { enum_metadata.elements()->emplace(static_cast(EnumTraits::values[i]), EnumTraits::names[i]); } } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::cpp2::SmallStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs()->emplace("module.SmallStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_SmallStruct = res.first->second; module_SmallStruct.name() = "module.SmallStruct"; module_SmallStruct.is_union() = false; static const auto* const module_SmallStruct_fields = new std::array{ { { 1, "small_A", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{ }}, { 2, "small_B", false, std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{ }}, }}; for (const auto& f : *module_SmallStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id() = f.id; field.name() = f.name; field.is_optional() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type(), metadata); field.structured_annotations() = f.structured_annotations; module_SmallStruct.fields()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::cpp2::containerStruct>::gen(ThriftMetadata& metadata) { auto res = metadata.structs()->emplace("module.containerStruct", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_containerStruct = res.first->second; module_containerStruct.name() = "module.containerStruct"; module_containerStruct.is_union() = false; static const auto* const module_containerStruct_fields = new std::array{ { { 1, "fieldA", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{ }}, { 2, "fieldB", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)), std::vector{ }}, { 3, "fieldC", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector{ }}, { 4, "fieldD", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{ }}, { 5, "fieldE", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{ }}, { 6, "fieldF", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)))), std::vector{ }}, { 7, "fieldG", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE)))), std::vector{ }}, { 8, "fieldH", false, std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::vector{ }}, { 9, "fieldI", false, std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE), std::vector{ }}, { 10, "fieldJ", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::vector{ }}, { 11, "fieldK", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))))), std::vector{ }}, { 12, "fieldL", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)))), std::vector{ }}, { 13, "fieldM", false, std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE))), std::make_unique(std::make_unique(std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE))), std::vector{ }}, { 14, "fieldN", false, std::make_unique(std::make_unique("module.IndirectionA", std::make_unique(ThriftPrimitiveType::THRIFT_I64_TYPE), std::vector{ *cvStruct("cpp.Type", { {"name", cvString("Foo") } }).cv_struct_ref(), })), std::vector{ }}, { 15, "fieldO", false, std::make_unique(std::make_unique("module.IndirectionB", std::make_unique(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector{ *cvStruct("cpp.Type", { {"name", cvString("Bar") } }).cv_struct_ref(), })), std::vector{ }}, { 16, "fieldP", false, std::make_unique(std::make_unique("module.IndirectionC", std::make_unique(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector{ *cvStruct("cpp.Type", { {"name", cvString("Baz") } }).cv_struct_ref(), })), std::vector{ }}, { 17, "fieldQ", false, std::make_unique>("module.MyEnumA"), std::vector{ }}, { 18, "fieldR", false, std::make_unique(std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique(ThriftPrimitiveType::THRIFT_BOOL_TYPE)), std::vector{ *cvStruct("cpp.Ref", { {"type", cvInteger(0) } }).cv_struct_ref(), }}, { 19, "fieldS", false, std::make_unique>("module.SmallStruct"), std::vector{ *cvStruct("cpp.Ref", { {"type", cvInteger(0) } }).cv_struct_ref(), }}, { 20, "fieldT", false, std::make_unique>("module.SmallStruct"), std::vector{ *cvStruct("cpp.Ref", { {"type", cvInteger(2) } }).cv_struct_ref(), }}, { 21, "fieldU", false, std::make_unique>("module.SmallStruct"), std::vector{ *cvStruct("cpp.Ref", { {"type", cvInteger(1) } }).cv_struct_ref(), }}, { 23, "fieldX", false, std::make_unique>("module.SmallStruct"), std::vector{ *cvStruct("cpp.Ref", { {"type", cvInteger(0) } }).cv_struct_ref(), }}, }}; for (const auto& f : *module_containerStruct_fields) { ::apache::thrift::metadata::ThriftField field; field.id() = f.id; field.name() = f.name; field.is_optional() = f.is_optional; f.metadata_type_interface->writeAndGenType(*field.type(), metadata); field.structured_annotations() = f.structured_annotations; module_containerStruct.fields()->push_back(std::move(field)); } return res.first->second; } } // namespace md } // namespace detail } // namespace thrift } // namespace apache