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/constants/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<::cpp2::EmptyEnum>::gen(ThriftMetadata& metadata) {
22 auto res = metadata.enums_ref()->emplace("module.EmptyEnum", ::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.EmptyEnum";
28 using EnumTraits = TEnumTraits<::cpp2::EmptyEnum>;
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 }
gen(ThriftMetadata & metadata)33 void EnumMetadata<::cpp2::City>::gen(ThriftMetadata& metadata) {
34 auto res = metadata.enums_ref()->emplace("module.City", ::apache::thrift::metadata::ThriftEnum{});
35 if (!res.second) {
36 return;
37 }
38 ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second;
39 enum_metadata.name_ref() = "module.City";
40 using EnumTraits = TEnumTraits<::cpp2::City>;
41 for (std::size_t i = 0; i < EnumTraits::size; ++i) {
42 enum_metadata.elements_ref()->emplace(static_cast<int32_t>(EnumTraits::values[i]), EnumTraits::names[i].str());
43 }
44 }
gen(ThriftMetadata & metadata)45 void EnumMetadata<::cpp2::Company>::gen(ThriftMetadata& metadata) {
46 auto res = metadata.enums_ref()->emplace("module.Company", ::apache::thrift::metadata::ThriftEnum{});
47 if (!res.second) {
48 return;
49 }
50 ::apache::thrift::metadata::ThriftEnum& enum_metadata = res.first->second;
51 enum_metadata.name_ref() = "module.Company";
52 using EnumTraits = TEnumTraits<::cpp2::Company>;
53 for (std::size_t i = 0; i < EnumTraits::size; ++i) {
54 enum_metadata.elements_ref()->emplace(static_cast<int32_t>(EnumTraits::values[i]), EnumTraits::names[i].str());
55 }
56 }
57
58 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)59 StructMetadata<::cpp2::Internship>::gen(ThriftMetadata& metadata) {
60 auto res = metadata.structs_ref()->emplace("module.Internship", ::apache::thrift::metadata::ThriftStruct{});
61 if (!res.second) {
62 return res.first->second;
63 }
64 ::apache::thrift::metadata::ThriftStruct& module_Internship = res.first->second;
65 module_Internship.name_ref() = "module.Internship";
66 module_Internship.is_union_ref() = false;
67 static const EncodedThriftField
68 module_Internship_fields[] = {
69 {1, "weeks", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
70 {2, "title", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector<ThriftConstStruct>{}},
71 {3, "employer", true, std::make_unique<Enum< ::cpp2::Company>>("module.Company"), std::vector<ThriftConstStruct>{}},
72 {4, "compensation", true, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector<ThriftConstStruct>{}},
73 {5, "school", true, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector<ThriftConstStruct>{}},
74 };
75 for (const auto& f : module_Internship_fields) {
76 ::apache::thrift::metadata::ThriftField field;
77 field.id_ref() = f.id;
78 field.name_ref() = f.name;
79 field.is_optional_ref() = f.is_optional;
80 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
81 field.structured_annotations_ref() = f.structured_annotations;
82 module_Internship.fields_ref()->push_back(std::move(field));
83 }
84 return res.first->second;
85 }
86 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)87 StructMetadata<::cpp2::Range>::gen(ThriftMetadata& metadata) {
88 auto res = metadata.structs_ref()->emplace("module.Range", ::apache::thrift::metadata::ThriftStruct{});
89 if (!res.second) {
90 return res.first->second;
91 }
92 ::apache::thrift::metadata::ThriftStruct& module_Range = res.first->second;
93 module_Range.name_ref() = "module.Range";
94 module_Range.is_union_ref() = false;
95 static const EncodedThriftField
96 module_Range_fields[] = {
97 {1, "min", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
98 {2, "max", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
99 };
100 for (const auto& f : module_Range_fields) {
101 ::apache::thrift::metadata::ThriftField field;
102 field.id_ref() = f.id;
103 field.name_ref() = f.name;
104 field.is_optional_ref() = f.is_optional;
105 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
106 field.structured_annotations_ref() = f.structured_annotations;
107 module_Range.fields_ref()->push_back(std::move(field));
108 }
109 return res.first->second;
110 }
111 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)112 StructMetadata<::cpp2::struct1>::gen(ThriftMetadata& metadata) {
113 auto res = metadata.structs_ref()->emplace("module.struct1", ::apache::thrift::metadata::ThriftStruct{});
114 if (!res.second) {
115 return res.first->second;
116 }
117 ::apache::thrift::metadata::ThriftStruct& module_struct1 = res.first->second;
118 module_struct1.name_ref() = "module.struct1";
119 module_struct1.is_union_ref() = false;
120 static const EncodedThriftField
121 module_struct1_fields[] = {
122 {1, "a", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
123 {2, "b", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector<ThriftConstStruct>{}},
124 };
125 for (const auto& f : module_struct1_fields) {
126 ::apache::thrift::metadata::ThriftField field;
127 field.id_ref() = f.id;
128 field.name_ref() = f.name;
129 field.is_optional_ref() = f.is_optional;
130 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
131 field.structured_annotations_ref() = f.structured_annotations;
132 module_struct1.fields_ref()->push_back(std::move(field));
133 }
134 return res.first->second;
135 }
136 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)137 StructMetadata<::cpp2::struct2>::gen(ThriftMetadata& metadata) {
138 auto res = metadata.structs_ref()->emplace("module.struct2", ::apache::thrift::metadata::ThriftStruct{});
139 if (!res.second) {
140 return res.first->second;
141 }
142 ::apache::thrift::metadata::ThriftStruct& module_struct2 = res.first->second;
143 module_struct2.name_ref() = "module.struct2";
144 module_struct2.is_union_ref() = false;
145 static const EncodedThriftField
146 module_struct2_fields[] = {
147 {1, "a", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
148 {2, "b", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector<ThriftConstStruct>{}},
149 {3, "c", false, std::make_unique<Struct< ::cpp2::struct1>>("module.struct1"), std::vector<ThriftConstStruct>{}},
150 {4, "d", false, std::make_unique<List>(std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE)), std::vector<ThriftConstStruct>{}},
151 };
152 for (const auto& f : module_struct2_fields) {
153 ::apache::thrift::metadata::ThriftField field;
154 field.id_ref() = f.id;
155 field.name_ref() = f.name;
156 field.is_optional_ref() = f.is_optional;
157 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
158 field.structured_annotations_ref() = f.structured_annotations;
159 module_struct2.fields_ref()->push_back(std::move(field));
160 }
161 return res.first->second;
162 }
163 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)164 StructMetadata<::cpp2::struct3>::gen(ThriftMetadata& metadata) {
165 auto res = metadata.structs_ref()->emplace("module.struct3", ::apache::thrift::metadata::ThriftStruct{});
166 if (!res.second) {
167 return res.first->second;
168 }
169 ::apache::thrift::metadata::ThriftStruct& module_struct3 = res.first->second;
170 module_struct3.name_ref() = "module.struct3";
171 module_struct3.is_union_ref() = false;
172 static const EncodedThriftField
173 module_struct3_fields[] = {
174 {1, "a", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_STRING_TYPE), std::vector<ThriftConstStruct>{}},
175 {2, "b", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
176 {3, "c", false, std::make_unique<Struct< ::cpp2::struct2>>("module.struct2"), std::vector<ThriftConstStruct>{}},
177 };
178 for (const auto& f : module_struct3_fields) {
179 ::apache::thrift::metadata::ThriftField field;
180 field.id_ref() = f.id;
181 field.name_ref() = f.name;
182 field.is_optional_ref() = f.is_optional;
183 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
184 field.structured_annotations_ref() = f.structured_annotations;
185 module_struct3.fields_ref()->push_back(std::move(field));
186 }
187 return res.first->second;
188 }
189 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)190 StructMetadata<::cpp2::struct4>::gen(ThriftMetadata& metadata) {
191 auto res = metadata.structs_ref()->emplace("module.struct4", ::apache::thrift::metadata::ThriftStruct{});
192 if (!res.second) {
193 return res.first->second;
194 }
195 ::apache::thrift::metadata::ThriftStruct& module_struct4 = res.first->second;
196 module_struct4.name_ref() = "module.struct4";
197 module_struct4.is_union_ref() = false;
198 static const EncodedThriftField
199 module_struct4_fields[] = {
200 {1, "a", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
201 {2, "b", true, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector<ThriftConstStruct>{}},
202 {3, "c", true, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_BYTE_TYPE), std::vector<ThriftConstStruct>{}},
203 };
204 for (const auto& f : module_struct4_fields) {
205 ::apache::thrift::metadata::ThriftField field;
206 field.id_ref() = f.id;
207 field.name_ref() = f.name;
208 field.is_optional_ref() = f.is_optional;
209 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
210 field.structured_annotations_ref() = f.structured_annotations;
211 module_struct4.fields_ref()->push_back(std::move(field));
212 }
213 return res.first->second;
214 }
215 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)216 StructMetadata<::cpp2::union1>::gen(ThriftMetadata& metadata) {
217 auto res = metadata.structs_ref()->emplace("module.union1", ::apache::thrift::metadata::ThriftStruct{});
218 if (!res.second) {
219 return res.first->second;
220 }
221 ::apache::thrift::metadata::ThriftStruct& module_union1 = res.first->second;
222 module_union1.name_ref() = "module.union1";
223 module_union1.is_union_ref() = true;
224 static const EncodedThriftField
225 module_union1_fields[] = {
226 {1, "i", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
227 {2, "d", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector<ThriftConstStruct>{}},
228 };
229 for (const auto& f : module_union1_fields) {
230 ::apache::thrift::metadata::ThriftField field;
231 field.id_ref() = f.id;
232 field.name_ref() = f.name;
233 field.is_optional_ref() = f.is_optional;
234 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
235 field.structured_annotations_ref() = f.structured_annotations;
236 module_union1.fields_ref()->push_back(std::move(field));
237 }
238 return res.first->second;
239 }
240 const ::apache::thrift::metadata::ThriftStruct&
gen(ThriftMetadata & metadata)241 StructMetadata<::cpp2::union2>::gen(ThriftMetadata& metadata) {
242 auto res = metadata.structs_ref()->emplace("module.union2", ::apache::thrift::metadata::ThriftStruct{});
243 if (!res.second) {
244 return res.first->second;
245 }
246 ::apache::thrift::metadata::ThriftStruct& module_union2 = res.first->second;
247 module_union2.name_ref() = "module.union2";
248 module_union2.is_union_ref() = true;
249 static const EncodedThriftField
250 module_union2_fields[] = {
251 {1, "i", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_I32_TYPE), std::vector<ThriftConstStruct>{}},
252 {2, "d", false, std::make_unique<Primitive>(ThriftPrimitiveType::THRIFT_DOUBLE_TYPE), std::vector<ThriftConstStruct>{}},
253 {3, "s", false, std::make_unique<Struct< ::cpp2::struct1>>("module.struct1"), std::vector<ThriftConstStruct>{}},
254 {4, "u", false, std::make_unique<Union< ::cpp2::union1>>("module.union1"), std::vector<ThriftConstStruct>{}},
255 };
256 for (const auto& f : module_union2_fields) {
257 ::apache::thrift::metadata::ThriftField field;
258 field.id_ref() = f.id;
259 field.name_ref() = f.name;
260 field.is_optional_ref() = f.is_optional;
261 f.metadata_type_interface->writeAndGenType(*field.type_ref(), metadata);
262 field.structured_annotations_ref() = f.structured_annotations;
263 module_union2.fields_ref()->push_back(std::move(field));
264 }
265 return res.first->second;
266 }
267
268 } // namespace md
269 } // namespace detail
270 } // namespace thrift
271 } // namespace apache
272