/** * 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 #include "thrift/compiler/test/fixtures/mixin/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&); const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::cpp2::Mixin1>::gen(ThriftMetadata& metadata) { auto res = metadata.structs()->emplace("module.Mixin1", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_Mixin1 = res.first->second; module_Mixin1.name() = "module.Mixin1"; module_Mixin1.is_union() = false; static const auto* const module_Mixin1_fields = new std::array{ { { 1, "field1", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{ }}, }}; for (const auto& f : *module_Mixin1_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_Mixin1.fields()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::cpp2::Mixin2>::gen(ThriftMetadata& metadata) { auto res = metadata.structs()->emplace("module.Mixin2", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_Mixin2 = res.first->second; module_Mixin2.name() = "module.Mixin2"; module_Mixin2.is_union() = false; static const auto* const module_Mixin2_fields = new std::array{ { { 1, "m1", false, std::make_unique>("module.Mixin1"), std::vector{ *cvStruct("thrift.Mixin", { }).cv_struct_ref(), }}, { 2, "field2", true, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{ }}, }}; for (const auto& f : *module_Mixin2_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_Mixin2.fields()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::cpp2::Mixin3Base>::gen(ThriftMetadata& metadata) { auto res = metadata.structs()->emplace("module.Mixin3Base", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_Mixin3Base = res.first->second; module_Mixin3Base.name() = "module.Mixin3Base"; module_Mixin3Base.is_union() = false; static const auto* const module_Mixin3Base_fields = new std::array{ { { 1, "field3", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{ }}, }}; for (const auto& f : *module_Mixin3Base_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_Mixin3Base.fields()->push_back(std::move(field)); } return res.first->second; } const ::apache::thrift::metadata::ThriftStruct& StructMetadata<::cpp2::Foo>::gen(ThriftMetadata& metadata) { auto res = metadata.structs()->emplace("module.Foo", ::apache::thrift::metadata::ThriftStruct{}); if (!res.second) { return res.first->second; } ::apache::thrift::metadata::ThriftStruct& module_Foo = res.first->second; module_Foo.name() = "module.Foo"; module_Foo.is_union() = false; static const auto* const module_Foo_fields = new std::array{ { { 1, "field4", false, std::make_unique(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector{ }}, { 2, "m2", false, std::make_unique>("module.Mixin2"), std::vector{ }}, { 3, "m3", false, std::make_unique("module.Mixin3", std::make_unique>("module.Mixin3Base"), std::vector{ }), std::vector{ }}, }}; for (const auto& f : *module_Foo_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_Foo.fields()->push_back(std::move(field)); } return res.first->second; } } // namespace md } // namespace detail } // namespace thrift } // namespace apache