1 /**
2 * Autogenerated by Thrift for src/module.thrift
3 *
4 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5 * @generated @nocommit
6 */
7 #include <thrift/lib/cpp2/gen/module_metadata_cpp.h>
8 #include "thrift/compiler/test/fixtures/frozen-struct/gen-cpp2/module_metadata.h"
9
10 namespace apache {
11 namespace thrift {
12 namespace detail {
13 namespace md {
14 using ThriftMetadata = ::apache::thrift::metadata::ThriftMetadata;
15 using ThriftPrimitiveType = ::apache::thrift::metadata::ThriftPrimitiveType;
16 using ThriftType = ::apache::thrift::metadata::ThriftType;
17 using ThriftService = ::apache::thrift::metadata::ThriftService;
18 using ThriftServiceContext = ::apache::thrift::metadata::ThriftServiceContext;
19 using ThriftFunctionGenerator = void (*)(ThriftMetadata&, ThriftService&);
20
gen(ThriftMetadata & metadata)21 void EnumMetadata<::some::ns::EnumB>::gen(ThriftMetadata& metadata) {
22 auto res = metadata.enums_ref()->emplace("module.EnumB", ::apache::thrift::metadata::ThriftEnum{});
23 if (!res.second) {
24 return;
25 }
26 ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second;
27 enum_metadata.name_ref() = "module.EnumB";
28 using EnumTraits = TEnumTraits<::some::ns::EnumB>;
29 for (std::size_t i = 0; i < EnumTraits::size; ++i) {
30 enum_metadata.elements_ref()->emplace(static_cast<int32_t>(EnumTraits::values[i]), EnumTraits::names[i].str());
31 }
32 }
33
34 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)35 StructMetadata<::some::ns::ModuleA>::gen(ThriftMetadata& metadata) {
36 auto res = metadata.structs_ref()->emplace("module.ModuleA", ::apache::thrift::metadata::ThriftStruct{});
37 if (!res.second) {
38 return res.first->second;
39 }
40 ::apache::thrift::metadata::ThriftStruct& module_ModuleA = res.first->second;
41 module_ModuleA.name_ref() = "module.ModuleA";
42 module_ModuleA.is_union_ref() = false;
43 static const EncodedThriftField
44 module_ModuleA_fields[] = {
45 {1, "i32Field", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
46 {2, "strField", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector<ThriftConstStruct>{}},
47 {3, "listField", false, std::make_unique<List>(std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I16_TYPE)), std::vector<ThriftConstStruct>{}},
48 {4, "mapField", false, std::make_unique<Map>(std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector<ThriftConstStruct>{}},
49 {5, "inclAField", false, std::make_unique<Struct< ::some::ns::IncludedA>>("include1.IncludedA"), std::vector<ThriftConstStruct>{}},
50 {6, "inclBField", false, std::make_unique<Struct< ::some::ns::IncludedB>>("include2.IncludedB"), std::vector<ThriftConstStruct>{}},
51 };
52 for (const auto& f : module_ModuleA_fields) {
53 ::apache::thrift::metadata::ThriftField field;
54 field.id_ref() = f.id;
55 field.name_ref() = f.name;
56 field.is_optional_ref() = f.is_optional;
57 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
58 field.structured_annotations_ref() = f.structured_annotations;
59 module_ModuleA.fields_ref()->push_back(std::move(field));
60 }
61 return res.first->second;
62 }
63 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)64 StructMetadata<::some::ns::ModuleB>::gen(ThriftMetadata& metadata) {
65 auto res = metadata.structs_ref()->emplace("module.ModuleB", ::apache::thrift::metadata::ThriftStruct{});
66 if (!res.second) {
67 return res.first->second;
68 }
69 ::apache::thrift::metadata::ThriftStruct& module_ModuleB = res.first->second;
70 module_ModuleB.name_ref() = "module.ModuleB";
71 module_ModuleB.is_union_ref() = false;
72 static const EncodedThriftField
73 module_ModuleB_fields[] = {
74 {1, "i32Field", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
75 {2, "inclEnumB", false, std::make_unique<Enum< ::some::ns::EnumB>>("module.EnumB"), std::vector<ThriftConstStruct>{}},
76 };
77 for (const auto& f : module_ModuleB_fields) {
78 ::apache::thrift::metadata::ThriftField field;
79 field.id_ref() = f.id;
80 field.name_ref() = f.name;
81 field.is_optional_ref() = f.is_optional;
82 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
83 field.structured_annotations_ref() = f.structured_annotations;
84 module_ModuleB.fields_ref()->push_back(std::move(field));
85 }
86 return res.first->second;
87 }
88
89 } // namespace md
90 } // namespace detail
91 } // namespace thrift
92 } // namespace apache
93