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 #pragma once
8 
9 #include "thrift/compiler/test/fixtures/adapter/gen-cpp2/module_types.h"
10 
11 #include <thrift/lib/cpp2/gen/module_types_tcc.h>
12 
13 
14 namespace apache {
15 namespace thrift {
16 namespace detail {
17 
18 template <>
19 struct TccStructTraits<::cpp2::Foo> {
20   static void translateFieldName(
21       folly::StringPiece _fname,
22       int16_t& fid,
23       apache::thrift::protocol::TType& _ftype) noexcept;
24 };
25 template <>
26 struct TccStructTraits<::cpp2::Baz> {
27   static void translateFieldName(
28       folly::StringPiece _fname,
29       int16_t& fid,
30       apache::thrift::protocol::TType& _ftype) noexcept;
31 };
32 template <>
33 struct TccStructTraits<::cpp2::Bar> {
34   static void translateFieldName(
35       folly::StringPiece _fname,
36       int16_t& fid,
37       apache::thrift::protocol::TType& _ftype) noexcept;
38 };
39 template <>
40 struct TccStructTraits<::cpp2::StructWithFieldAdapter> {
41   static void translateFieldName(
42       folly::StringPiece _fname,
43       int16_t& fid,
44       apache::thrift::protocol::TType& _ftype) noexcept;
45 };
46 
47 } // namespace detail
48 } // namespace thrift
49 } // namespace apache
50 
51 namespace cpp2 {
52 
53 template <class Protocol_>
readNoXfer(Protocol_ * iprot)54 void Foo::readNoXfer(Protocol_* iprot) {
55   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
56 
57   _readState.readStructBegin(iprot);
58 
59   using apache::thrift::TProtocolException;
60 
61 
62   if (UNLIKELY(!_readState.advanceToNextField(
63           iprot,
64           0,
65           1,
66           apache::thrift::protocol::T_I32))) {
67     goto _loop;
68   }
69 _readField_intField:
70   {
71     ::std::int32_t tvalue;
72     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
73     this->__fbthrift_field_intField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
74 
75   }
76  this->__isset.set(0, true);
77 
78   if (UNLIKELY(!_readState.advanceToNextField(
79           iprot,
80           1,
81           2,
82           apache::thrift::protocol::T_I32))) {
83     goto _loop;
84   }
85 _readField_optionalIntField:
86   {
87     ::std::int32_t tvalue;
88     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
89     this->__fbthrift_field_optionalIntField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 2>(::std::move(tvalue), *this);
90 
91   }
92  this->__isset.set(1, true);
93 
94   if (UNLIKELY(!_readState.advanceToNextField(
95           iprot,
96           2,
97           3,
98           apache::thrift::protocol::T_I32))) {
99     goto _loop;
100   }
101 _readField_intFieldWithDefault:
102   {
103     ::std::int32_t tvalue;
104     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
105     this->__fbthrift_field_intFieldWithDefault = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 3>(::std::move(tvalue), *this);
106 
107   }
108  this->__isset.set(2, true);
109 
110   if (UNLIKELY(!_readState.advanceToNextField(
111           iprot,
112           3,
113           4,
114           apache::thrift::protocol::T_SET))) {
115     goto _loop;
116   }
117 _readField_setField:
118   {
119     _readState.beforeSubobject(iprot);
120     ::std::set<::std::string> tvalue;
121     this->__fbthrift_field_setField = ::cpp2::SetWithAdapter();
122     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::readWithContext(*iprot, tvalue, _readState);
123     this->__fbthrift_field_setField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter2, 4>(::std::move(tvalue), *this);
124     _readState.afterSubobject(iprot);
125 
126   }
127  this->__isset.set(3, true);
128 
129   if (UNLIKELY(!_readState.advanceToNextField(
130           iprot,
131           4,
132           5,
133           apache::thrift::protocol::T_SET))) {
134     goto _loop;
135   }
136 _readField_optionalSetField:
137   {
138     _readState.beforeSubobject(iprot);
139     ::std::set<::std::string> tvalue;
140     this->__fbthrift_field_optionalSetField = ::cpp2::SetWithAdapter();
141     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::readWithContext(*iprot, tvalue, _readState);
142     this->__fbthrift_field_optionalSetField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter2, 5>(::std::move(tvalue), *this);
143     _readState.afterSubobject(iprot);
144 
145   }
146  this->__isset.set(4, true);
147 
148   if (UNLIKELY(!_readState.advanceToNextField(
149           iprot,
150           5,
151           6,
152           apache::thrift::protocol::T_MAP))) {
153     goto _loop;
154   }
155 _readField_mapField:
156   {
157     _readState.beforeSubobject(iprot);
158     ::std::map<::std::string, ::cpp2::ListWithElemAdapter> tvalue;
159     this->__fbthrift_field_mapField = ::apache::thrift::adapt_detail::adapted_t<my::Adapter3, ::std::map<::std::string, ::apache::thrift::adapt_detail::adapted_t<my::Adapter2, ::cpp2::ListWithElemAdapter>>>();
160     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::readWithContext(*iprot, tvalue, _readState);
161     this->__fbthrift_field_mapField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter3, 6>(::std::move(tvalue), *this);
162     _readState.afterSubobject(iprot);
163 
164   }
165  this->__isset.set(5, true);
166 
167   if (UNLIKELY(!_readState.advanceToNextField(
168           iprot,
169           6,
170           7,
171           apache::thrift::protocol::T_MAP))) {
172     goto _loop;
173   }
174 _readField_optionalMapField:
175   {
176     _readState.beforeSubobject(iprot);
177     ::std::map<::std::string, ::cpp2::ListWithElemAdapter> tvalue;
178     this->__fbthrift_field_optionalMapField = ::apache::thrift::adapt_detail::adapted_t<my::Adapter3, ::std::map<::std::string, ::apache::thrift::adapt_detail::adapted_t<my::Adapter2, ::cpp2::ListWithElemAdapter>>>();
179     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::readWithContext(*iprot, tvalue, _readState);
180     this->__fbthrift_field_optionalMapField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter3, 7>(::std::move(tvalue), *this);
181     _readState.afterSubobject(iprot);
182 
183   }
184  this->__isset.set(6, true);
185 
186   if (UNLIKELY(!_readState.advanceToNextField(
187           iprot,
188           7,
189           8,
190           apache::thrift::protocol::T_STRING))) {
191     goto _loop;
192   }
193 _readField_binaryField:
194   {
195     ::std::string tvalue;
196     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, tvalue, _readState);
197     this->__fbthrift_field_binaryField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 8>(::std::move(tvalue), *this);
198 
199   }
200  this->__isset.set(7, true);
201 
202   if (UNLIKELY(!_readState.advanceToNextField(
203           iprot,
204           8,
205           0,
206           apache::thrift::protocol::T_STOP))) {
207     goto _loop;
208   }
209 
210 _end:
211   _readState.readStructEnd(iprot);
212 
213   return;
214 
215 _loop:
216   _readState.afterAdvanceFailure(iprot);
217   if (_readState.atStop()) {
218     goto _end;
219   }
220   if (iprot->kUsesFieldNames()) {
221     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Foo>>();
222   }
223 
224   switch (_readState.fieldId) {
225     case 1:
226     {
227       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
228         goto _readField_intField;
229       } else {
230         goto _skip;
231       }
232     }
233     case 2:
234     {
235       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
236         goto _readField_optionalIntField;
237       } else {
238         goto _skip;
239       }
240     }
241     case 3:
242     {
243       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
244         goto _readField_intFieldWithDefault;
245       } else {
246         goto _skip;
247       }
248     }
249     case 4:
250     {
251       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET))) {
252         goto _readField_setField;
253       } else {
254         goto _skip;
255       }
256     }
257     case 5:
258     {
259       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET))) {
260         goto _readField_optionalSetField;
261       } else {
262         goto _skip;
263       }
264     }
265     case 6:
266     {
267       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
268         goto _readField_mapField;
269       } else {
270         goto _skip;
271       }
272     }
273     case 7:
274     {
275       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
276         goto _readField_optionalMapField;
277       } else {
278         goto _skip;
279       }
280     }
281     case 8:
282     {
283       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
284         goto _readField_binaryField;
285       } else {
286         goto _skip;
287       }
288     }
289     default:
290     {
291 _skip:
292       _readState.skip(iprot);
293       _readState.readFieldEnd(iprot);
294       _readState.readFieldBeginNoInline(iprot);
295       goto _loop;
296     }
297   }
298 }
299 
300 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const301 uint32_t Foo::serializedSize(Protocol_ const* prot_) const {
302   uint32_t xfer = 0;
303   xfer += prot_->serializedStructSize("Foo");
304   {
305     xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
306     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intField));
307   }
308   if (this->__isset.get(1)) {
309     xfer += prot_->serializedFieldSize("optionalIntField", apache::thrift::protocol::T_I32, 2);
310     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalIntField));
311   }
312   {
313     xfer += prot_->serializedFieldSize("intFieldWithDefault", apache::thrift::protocol::T_I32, 3);
314     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intFieldWithDefault));
315   }
316   {
317     xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
318     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_setField));
319   }
320   if (this->__isset.get(4)) {
321     xfer += prot_->serializedFieldSize("optionalSetField", apache::thrift::protocol::T_SET, 5);
322     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_optionalSetField));
323   }
324   {
325     xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
326     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_mapField));
327   }
328   if (this->__isset.get(6)) {
329     xfer += prot_->serializedFieldSize("optionalMapField", apache::thrift::protocol::T_MAP, 7);
330     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_optionalMapField));
331   }
332   {
333     xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
334     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_binaryField));
335   }
336   xfer += prot_->serializedSizeStop();
337   return xfer;
338 }
339 
340 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const341 uint32_t Foo::serializedSizeZC(Protocol_ const* prot_) const {
342   uint32_t xfer = 0;
343   xfer += prot_->serializedStructSize("Foo");
344   {
345     xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
346     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intField));
347   }
348   if (this->__isset.get(1)) {
349     xfer += prot_->serializedFieldSize("optionalIntField", apache::thrift::protocol::T_I32, 2);
350     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalIntField));
351   }
352   {
353     xfer += prot_->serializedFieldSize("intFieldWithDefault", apache::thrift::protocol::T_I32, 3);
354     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intFieldWithDefault));
355   }
356   {
357     xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
358     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_setField));
359   }
360   if (this->__isset.get(4)) {
361     xfer += prot_->serializedFieldSize("optionalSetField", apache::thrift::protocol::T_SET, 5);
362     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_optionalSetField));
363   }
364   {
365     xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
366     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_mapField));
367   }
368   if (this->__isset.get(6)) {
369     xfer += prot_->serializedFieldSize("optionalMapField", apache::thrift::protocol::T_MAP, 7);
370     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_optionalMapField));
371   }
372   {
373     xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
374     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_binaryField));
375   }
376   xfer += prot_->serializedSizeStop();
377   return xfer;
378 }
379 
380 template <class Protocol_>
write(Protocol_ * prot_) const381 uint32_t Foo::write(Protocol_* prot_) const {
382   uint32_t xfer = 0;
383   xfer += prot_->writeStructBegin("Foo");
384   bool previousFieldHasValue = true;
385   {
386     constexpr int16_t kPrevFieldId = 0;
387     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "intField", previousFieldHasValue);
388     previousFieldHasValue = true;
389     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intField));
390     xfer += prot_->writeFieldEnd();
391   }
392   if (this->__isset.get(1)) {
393     constexpr int16_t kPrevFieldId = 1;
394     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 2, kPrevFieldId>(*prot_, "optionalIntField", previousFieldHasValue);
395     previousFieldHasValue = true;
396     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalIntField));
397     xfer += prot_->writeFieldEnd();
398   } else {
399     previousFieldHasValue = false;
400   }
401   {
402     constexpr int16_t kPrevFieldId = 2;
403     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 3, kPrevFieldId>(*prot_, "intFieldWithDefault", previousFieldHasValue);
404     previousFieldHasValue = true;
405     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_intFieldWithDefault));
406     xfer += prot_->writeFieldEnd();
407   }
408   {
409     constexpr int16_t kPrevFieldId = 3;
410     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 4, kPrevFieldId>(*prot_, "setField", previousFieldHasValue);
411     previousFieldHasValue = true;
412     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::write(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_setField));
413     xfer += prot_->writeFieldEnd();
414   }
415   if (this->__isset.get(4)) {
416     constexpr int16_t kPrevFieldId = 4;
417     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 5, kPrevFieldId>(*prot_, "optionalSetField", previousFieldHasValue);
418     previousFieldHasValue = true;
419     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::write(*prot_, my::Adapter2::toThrift(this->__fbthrift_field_optionalSetField));
420     xfer += prot_->writeFieldEnd();
421   } else {
422     previousFieldHasValue = false;
423   }
424   {
425     constexpr int16_t kPrevFieldId = 5;
426     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 6, kPrevFieldId>(*prot_, "mapField", previousFieldHasValue);
427     previousFieldHasValue = true;
428     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::write(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_mapField));
429     xfer += prot_->writeFieldEnd();
430   }
431   if (this->__isset.get(6)) {
432     constexpr int16_t kPrevFieldId = 6;
433     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 7, kPrevFieldId>(*prot_, "optionalMapField", previousFieldHasValue);
434     previousFieldHasValue = true;
435     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::write(*prot_, my::Adapter3::toThrift(this->__fbthrift_field_optionalMapField));
436     xfer += prot_->writeFieldEnd();
437   } else {
438     previousFieldHasValue = false;
439   }
440   {
441     constexpr int16_t kPrevFieldId = 7;
442     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 8, kPrevFieldId>(*prot_, "binaryField", previousFieldHasValue);
443     previousFieldHasValue = true;
444     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_binaryField));
445     xfer += prot_->writeFieldEnd();
446   }
447   xfer += prot_->writeFieldStop();
448   xfer += prot_->writeStructEnd();
449   return xfer;
450 }
451 
452 extern template void Foo::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
453 extern template uint32_t Foo::write<>(apache::thrift::BinaryProtocolWriter*) const;
454 extern template uint32_t Foo::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
455 extern template uint32_t Foo::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
456 extern template void Foo::readNoXfer<>(apache::thrift::CompactProtocolReader*);
457 extern template uint32_t Foo::write<>(apache::thrift::CompactProtocolWriter*) const;
458 extern template uint32_t Foo::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
459 extern template uint32_t Foo::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
460 
461 } // cpp2
462 namespace cpp2 {
463 
464 template <class Protocol_>
readNoXfer(Protocol_ * iprot)465 void Baz::readNoXfer(Protocol_* iprot) {
466   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
467   _readState.fieldId = 0;
468 
469   _readState.readStructBegin(iprot);
470 
471   _readState.readFieldBegin(iprot);
472   if (_readState.atStop()) {
473     apache::thrift::clear(*this);
474   } else {
475     if (iprot->kUsesFieldNames()) {
476       _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Baz>>();
477     }
478     switch (_readState.fieldId) {
479       case 1:
480       {
481         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32)) {
482           this->set_intField();
483           ::std::int32_t tvalue;
484           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
485           value_.intField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
486 
487         } else {
488           _readState.skip(iprot);
489         }
490         break;
491       }
492       case 4:
493       {
494         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET)) {
495           this->set_setField();
496           _readState.beforeSubobject(iprot);
497           ::std::set<::std::string> tvalue;
498           value_.setField = ::cpp2::SetWithAdapter();
499           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::readWithContext(*iprot, tvalue, _readState);
500           value_.setField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter2, 4>(::std::move(tvalue), *this);
501           _readState.afterSubobject(iprot);
502 
503         } else {
504           _readState.skip(iprot);
505         }
506         break;
507       }
508       case 6:
509       {
510         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP)) {
511           this->set_mapField();
512           _readState.beforeSubobject(iprot);
513           ::std::map<::std::string, ::cpp2::ListWithElemAdapter> tvalue;
514           value_.mapField = ::apache::thrift::adapt_detail::adapted_t<my::Adapter3, ::std::map<::std::string, ::apache::thrift::adapt_detail::adapted_t<my::Adapter2, ::cpp2::ListWithElemAdapter>>>();
515           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::readWithContext(*iprot, tvalue, _readState);
516           value_.mapField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter3, 6>(::std::move(tvalue), *this);
517           _readState.afterSubobject(iprot);
518 
519         } else {
520           _readState.skip(iprot);
521         }
522         break;
523       }
524       case 8:
525       {
526         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING)) {
527           this->set_binaryField();
528           ::std::string tvalue;
529           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, tvalue, _readState);
530           value_.binaryField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 8>(::std::move(tvalue), *this);
531 
532         } else {
533           _readState.skip(iprot);
534         }
535         break;
536       }
537       default:
538       {
539         _readState.skip(iprot);
540         break;
541       }
542     }
543     _readState.readFieldEnd(iprot);
544     _readState.readFieldBegin(iprot);
545     if (UNLIKELY(!_readState.atStop())) {
546       using apache::thrift::protocol::TProtocolException;
547       TProtocolException::throwUnionMissingStop();
548     }
549   }
550   _readState.readStructEnd(iprot);
551 }
552 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const553 uint32_t Baz::serializedSize(Protocol_ const* prot_) const {
554   uint32_t xfer = 0;
555   xfer += prot_->serializedStructSize("Baz");
556   switch(this->getType()) {
557     case Baz::Type::intField:
558     {
559       xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
560       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(value_.intField));
561       break;
562     }
563     case Baz::Type::setField:
564     {
565       xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
566       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(value_.setField));
567       break;
568     }
569     case Baz::Type::mapField:
570     {
571       xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
572       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(value_.mapField));
573       break;
574     }
575     case Baz::Type::binaryField:
576     {
577       xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
578       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, my::Adapter1::toThrift(value_.binaryField));
579       break;
580     }
581     case Baz::Type::__EMPTY__:;
582   }
583   xfer += prot_->serializedSizeStop();
584   return xfer;
585 }
586 
587 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const588 uint32_t Baz::serializedSizeZC(Protocol_ const* prot_) const {
589   uint32_t xfer = 0;
590   xfer += prot_->serializedStructSize("Baz");
591   switch(this->getType()) {
592     case Baz::Type::intField:
593     {
594       xfer += prot_->serializedFieldSize("intField", apache::thrift::protocol::T_I32, 1);
595       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(value_.intField));
596       break;
597     }
598     case Baz::Type::setField:
599     {
600       xfer += prot_->serializedFieldSize("setField", apache::thrift::protocol::T_SET, 4);
601       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::serializedSize<false>(*prot_, my::Adapter2::toThrift(value_.setField));
602       break;
603     }
604     case Baz::Type::mapField:
605     {
606       xfer += prot_->serializedFieldSize("mapField", apache::thrift::protocol::T_MAP, 6);
607       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::serializedSize<false>(*prot_, my::Adapter3::toThrift(value_.mapField));
608       break;
609     }
610     case Baz::Type::binaryField:
611     {
612       xfer += prot_->serializedFieldSize("binaryField", apache::thrift::protocol::T_STRING, 8);
613       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, my::Adapter1::toThrift(value_.binaryField));
614       break;
615     }
616     case Baz::Type::__EMPTY__:;
617   }
618   xfer += prot_->serializedSizeStop();
619   return xfer;
620 }
621 
622 template <class Protocol_>
write(Protocol_ * prot_) const623 uint32_t Baz::write(Protocol_* prot_) const {
624   uint32_t xfer = 0;
625   xfer += prot_->writeStructBegin("Baz");
626   switch(this->getType()) {
627     case Baz::Type::intField:
628     {
629       constexpr int16_t kPrevFieldId = 0;
630       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "intField", false);
631       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(value_.intField));
632       xfer += prot_->writeFieldEnd();
633       break;
634     }
635     case Baz::Type::setField:
636     {
637       constexpr int16_t kPrevFieldId = 1;
638       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 4, kPrevFieldId>(*prot_, "setField", false);
639       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::string>, ::std::set<::std::string>>::write(*prot_, my::Adapter2::toThrift(value_.setField));
640       xfer += prot_->writeFieldEnd();
641       break;
642     }
643     case Baz::Type::mapField:
644     {
645       constexpr int16_t kPrevFieldId = 4;
646       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 6, kPrevFieldId>(*prot_, "mapField", false);
647       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, ::std::map<::std::string, ::cpp2::ListWithElemAdapter>>::write(*prot_, my::Adapter3::toThrift(value_.mapField));
648       xfer += prot_->writeFieldEnd();
649       break;
650     }
651     case Baz::Type::binaryField:
652     {
653       constexpr int16_t kPrevFieldId = 6;
654       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 8, kPrevFieldId>(*prot_, "binaryField", false);
655       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, my::Adapter1::toThrift(value_.binaryField));
656       xfer += prot_->writeFieldEnd();
657       break;
658     }
659     case Baz::Type::__EMPTY__:;
660   }
661   xfer += prot_->writeFieldStop();
662   xfer += prot_->writeStructEnd();
663   return xfer;
664 }
665 
666 extern template void Baz::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
667 extern template uint32_t Baz::write<>(apache::thrift::BinaryProtocolWriter*) const;
668 extern template uint32_t Baz::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
669 extern template uint32_t Baz::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
670 extern template void Baz::readNoXfer<>(apache::thrift::CompactProtocolReader*);
671 extern template uint32_t Baz::write<>(apache::thrift::CompactProtocolWriter*) const;
672 extern template uint32_t Baz::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
673 extern template uint32_t Baz::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
674 
675 } // cpp2
676 namespace cpp2 {
677 
678 template <class Protocol_>
readNoXfer(Protocol_ * iprot)679 void Bar::readNoXfer(Protocol_* iprot) {
680   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
681 
682   _readState.readStructBegin(iprot);
683 
684   using apache::thrift::TProtocolException;
685 
686 
687   if (UNLIKELY(!_readState.advanceToNextField(
688           iprot,
689           0,
690           1,
691           apache::thrift::protocol::T_STRUCT))) {
692     goto _loop;
693   }
694 _readField_structField:
695   {
696     _readState.beforeSubobject(iprot);
697     ::cpp2::Foo tvalue;
698     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::readWithContext(*iprot, tvalue, _readState);
699     this->__fbthrift_field_structField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
700     _readState.afterSubobject(iprot);
701 
702   }
703  this->__isset.set(0, true);
704 
705   if (UNLIKELY(!_readState.advanceToNextField(
706           iprot,
707           1,
708           2,
709           apache::thrift::protocol::T_STRUCT))) {
710     goto _loop;
711   }
712 _readField_optionalStructField:
713   {
714     _readState.beforeSubobject(iprot);
715     ::cpp2::Foo tvalue;
716     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::readWithContext(*iprot, tvalue, _readState);
717     this->__fbthrift_field_optionalStructField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 2>(::std::move(tvalue), *this);
718     _readState.afterSubobject(iprot);
719 
720   }
721  this->__isset.set(1, true);
722 
723   if (UNLIKELY(!_readState.advanceToNextField(
724           iprot,
725           2,
726           3,
727           apache::thrift::protocol::T_LIST))) {
728     goto _loop;
729   }
730 _readField_structListField:
731   {
732     _readState.beforeSubobject(iprot);
733     this->__fbthrift_field_structListField = ::std::vector<::apache::thrift::adapt_detail::adapted_t<my::Adapter1, ::cpp2::Foo>>();
734     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::readWithContext(*iprot, this->__fbthrift_field_structListField, _readState);
735     _readState.afterSubobject(iprot);
736 
737   }
738  this->__isset.set(2, true);
739 
740   if (UNLIKELY(!_readState.advanceToNextField(
741           iprot,
742           3,
743           4,
744           apache::thrift::protocol::T_LIST))) {
745     goto _loop;
746   }
747 _readField_optionalStructListField:
748   {
749     _readState.beforeSubobject(iprot);
750     this->__fbthrift_field_optionalStructListField = ::std::vector<::apache::thrift::adapt_detail::adapted_t<my::Adapter1, ::cpp2::Foo>>();
751     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::readWithContext(*iprot, this->__fbthrift_field_optionalStructListField, _readState);
752     _readState.afterSubobject(iprot);
753 
754   }
755  this->__isset.set(3, true);
756 
757   if (UNLIKELY(!_readState.advanceToNextField(
758           iprot,
759           4,
760           5,
761           apache::thrift::protocol::T_STRUCT))) {
762     goto _loop;
763   }
764 _readField_unionField:
765   {
766     _readState.beforeSubobject(iprot);
767     ::cpp2::Baz tvalue;
768     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::readWithContext(*iprot, tvalue, _readState);
769     this->__fbthrift_field_unionField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 5>(::std::move(tvalue), *this);
770     _readState.afterSubobject(iprot);
771 
772   }
773  this->__isset.set(4, true);
774 
775   if (UNLIKELY(!_readState.advanceToNextField(
776           iprot,
777           5,
778           6,
779           apache::thrift::protocol::T_STRUCT))) {
780     goto _loop;
781   }
782 _readField_optionalUnionField:
783   {
784     _readState.beforeSubobject(iprot);
785     ::cpp2::Baz tvalue;
786     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::readWithContext(*iprot, tvalue, _readState);
787     this->__fbthrift_field_optionalUnionField = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 6>(::std::move(tvalue), *this);
788     _readState.afterSubobject(iprot);
789 
790   }
791  this->__isset.set(5, true);
792 
793   if (UNLIKELY(!_readState.advanceToNextField(
794           iprot,
795           6,
796           0,
797           apache::thrift::protocol::T_STOP))) {
798     goto _loop;
799   }
800 
801 _end:
802   _readState.readStructEnd(iprot);
803 
804   return;
805 
806 _loop:
807   _readState.afterAdvanceFailure(iprot);
808   if (_readState.atStop()) {
809     goto _end;
810   }
811   if (iprot->kUsesFieldNames()) {
812     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Bar>>();
813   }
814 
815   switch (_readState.fieldId) {
816     case 1:
817     {
818       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
819         goto _readField_structField;
820       } else {
821         goto _skip;
822       }
823     }
824     case 2:
825     {
826       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
827         goto _readField_optionalStructField;
828       } else {
829         goto _skip;
830       }
831     }
832     case 3:
833     {
834       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
835         goto _readField_structListField;
836       } else {
837         goto _skip;
838       }
839     }
840     case 4:
841     {
842       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
843         goto _readField_optionalStructListField;
844       } else {
845         goto _skip;
846       }
847     }
848     case 5:
849     {
850       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
851         goto _readField_unionField;
852       } else {
853         goto _skip;
854       }
855     }
856     case 6:
857     {
858       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
859         goto _readField_optionalUnionField;
860       } else {
861         goto _skip;
862       }
863     }
864     default:
865     {
866 _skip:
867       _readState.skip(iprot);
868       _readState.readFieldEnd(iprot);
869       _readState.readFieldBeginNoInline(iprot);
870       goto _loop;
871     }
872   }
873 }
874 
875 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const876 uint32_t Bar::serializedSize(Protocol_ const* prot_) const {
877   uint32_t xfer = 0;
878   xfer += prot_->serializedStructSize("Bar");
879   {
880     xfer += prot_->serializedFieldSize("structField", apache::thrift::protocol::T_STRUCT, 1);
881     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_structField));
882   }
883   if (this->__isset.get(1)) {
884     xfer += prot_->serializedFieldSize("optionalStructField", apache::thrift::protocol::T_STRUCT, 2);
885     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalStructField));
886   }
887   {
888     xfer += prot_->serializedFieldSize("structListField", apache::thrift::protocol::T_LIST, 3);
889     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_structListField);
890   }
891   if (this->__isset.get(3)) {
892     xfer += prot_->serializedFieldSize("optionalStructListField", apache::thrift::protocol::T_LIST, 4);
893     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_optionalStructListField);
894   }
895   {
896     xfer += prot_->serializedFieldSize("unionField", apache::thrift::protocol::T_STRUCT, 5);
897     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_unionField));
898   }
899   if (this->__isset.get(5)) {
900     xfer += prot_->serializedFieldSize("optionalUnionField", apache::thrift::protocol::T_STRUCT, 6);
901     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalUnionField));
902   }
903   xfer += prot_->serializedSizeStop();
904   return xfer;
905 }
906 
907 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const908 uint32_t Bar::serializedSizeZC(Protocol_ const* prot_) const {
909   uint32_t xfer = 0;
910   xfer += prot_->serializedStructSize("Bar");
911   {
912     xfer += prot_->serializedFieldSize("structField", apache::thrift::protocol::T_STRUCT, 1);
913     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_structField));
914   }
915   if (this->__isset.get(1)) {
916     xfer += prot_->serializedFieldSize("optionalStructField", apache::thrift::protocol::T_STRUCT, 2);
917     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalStructField));
918   }
919   {
920     xfer += prot_->serializedFieldSize("structListField", apache::thrift::protocol::T_LIST, 3);
921     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_structListField);
922   }
923   if (this->__isset.get(3)) {
924     xfer += prot_->serializedFieldSize("optionalStructListField", apache::thrift::protocol::T_LIST, 4);
925     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::serializedSize<false>(*prot_, this->__fbthrift_field_optionalStructListField);
926   }
927   {
928     xfer += prot_->serializedFieldSize("unionField", apache::thrift::protocol::T_STRUCT, 5);
929     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_unionField));
930   }
931   if (this->__isset.get(5)) {
932     xfer += prot_->serializedFieldSize("optionalUnionField", apache::thrift::protocol::T_STRUCT, 6);
933     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::serializedSize<true>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalUnionField));
934   }
935   xfer += prot_->serializedSizeStop();
936   return xfer;
937 }
938 
939 template <class Protocol_>
write(Protocol_ * prot_) const940 uint32_t Bar::write(Protocol_* prot_) const {
941   uint32_t xfer = 0;
942   xfer += prot_->writeStructBegin("Bar");
943   bool previousFieldHasValue = true;
944   {
945     constexpr int16_t kPrevFieldId = 0;
946     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "structField", previousFieldHasValue);
947     previousFieldHasValue = true;
948     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_structField));
949     xfer += prot_->writeFieldEnd();
950   }
951   if (this->__isset.get(1)) {
952     constexpr int16_t kPrevFieldId = 1;
953     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "optionalStructField", previousFieldHasValue);
954     previousFieldHasValue = true;
955     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::cpp2::Foo>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalStructField));
956     xfer += prot_->writeFieldEnd();
957   } else {
958     previousFieldHasValue = false;
959   }
960   {
961     constexpr int16_t kPrevFieldId = 2;
962     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 3, kPrevFieldId>(*prot_, "structListField", previousFieldHasValue);
963     previousFieldHasValue = true;
964     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::write(*prot_, this->__fbthrift_field_structListField);
965     xfer += prot_->writeFieldEnd();
966   }
967   if (this->__isset.get(3)) {
968     constexpr int16_t kPrevFieldId = 3;
969     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 4, kPrevFieldId>(*prot_, "optionalStructListField", previousFieldHasValue);
970     previousFieldHasValue = true;
971     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, ::std::vector<::cpp2::Foo>>::write(*prot_, this->__fbthrift_field_optionalStructListField);
972     xfer += prot_->writeFieldEnd();
973   } else {
974     previousFieldHasValue = false;
975   }
976   {
977     constexpr int16_t kPrevFieldId = 4;
978     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 5, kPrevFieldId>(*prot_, "unionField", previousFieldHasValue);
979     previousFieldHasValue = true;
980     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_unionField));
981     xfer += prot_->writeFieldEnd();
982   }
983   if (this->__isset.get(5)) {
984     constexpr int16_t kPrevFieldId = 5;
985     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 6, kPrevFieldId>(*prot_, "optionalUnionField", previousFieldHasValue);
986     previousFieldHasValue = true;
987     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::cpp2::Baz>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_optionalUnionField));
988     xfer += prot_->writeFieldEnd();
989   } else {
990     previousFieldHasValue = false;
991   }
992   xfer += prot_->writeFieldStop();
993   xfer += prot_->writeStructEnd();
994   return xfer;
995 }
996 
997 extern template void Bar::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
998 extern template uint32_t Bar::write<>(apache::thrift::BinaryProtocolWriter*) const;
999 extern template uint32_t Bar::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1000 extern template uint32_t Bar::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1001 extern template void Bar::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1002 extern template uint32_t Bar::write<>(apache::thrift::CompactProtocolWriter*) const;
1003 extern template uint32_t Bar::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1004 extern template uint32_t Bar::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1005 
1006 } // cpp2
1007 namespace cpp2 {
1008 
1009 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1010 void StructWithFieldAdapter::readNoXfer(Protocol_* iprot) {
1011   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1012 
1013   _readState.readStructBegin(iprot);
1014 
1015   using apache::thrift::TProtocolException;
1016 
1017 
1018   if (UNLIKELY(!_readState.advanceToNextField(
1019           iprot,
1020           0,
1021           1,
1022           apache::thrift::protocol::T_I32))) {
1023     goto _loop;
1024   }
1025 _readField_field:
1026   {
1027     ::std::int32_t tvalue;
1028     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, tvalue, _readState);
1029     this->__fbthrift_field_field = ::apache::thrift::adapt_detail::fromThriftField<my::Adapter1, 1>(::std::move(tvalue), *this);
1030 
1031   }
1032  this->__isset.set(0, true);
1033 
1034   if (UNLIKELY(!_readState.advanceToNextField(
1035           iprot,
1036           1,
1037           0,
1038           apache::thrift::protocol::T_STOP))) {
1039     goto _loop;
1040   }
1041 
1042 _end:
1043   _readState.readStructEnd(iprot);
1044 
1045   return;
1046 
1047 _loop:
1048   _readState.afterAdvanceFailure(iprot);
1049   if (_readState.atStop()) {
1050     goto _end;
1051   }
1052   if (iprot->kUsesFieldNames()) {
1053     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<StructWithFieldAdapter>>();
1054   }
1055 
1056   switch (_readState.fieldId) {
1057     case 1:
1058     {
1059       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1060         goto _readField_field;
1061       } else {
1062         goto _skip;
1063       }
1064     }
1065     default:
1066     {
1067 _skip:
1068       _readState.skip(iprot);
1069       _readState.readFieldEnd(iprot);
1070       _readState.readFieldBeginNoInline(iprot);
1071       goto _loop;
1072     }
1073   }
1074 }
1075 
1076 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1077 uint32_t StructWithFieldAdapter::serializedSize(Protocol_ const* prot_) const {
1078   uint32_t xfer = 0;
1079   xfer += prot_->serializedStructSize("StructWithFieldAdapter");
1080   {
1081     xfer += prot_->serializedFieldSize("field", apache::thrift::protocol::T_I32, 1);
1082     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_field));
1083   }
1084   xfer += prot_->serializedSizeStop();
1085   return xfer;
1086 }
1087 
1088 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1089 uint32_t StructWithFieldAdapter::serializedSizeZC(Protocol_ const* prot_) const {
1090   uint32_t xfer = 0;
1091   xfer += prot_->serializedStructSize("StructWithFieldAdapter");
1092   {
1093     xfer += prot_->serializedFieldSize("field", apache::thrift::protocol::T_I32, 1);
1094     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_field));
1095   }
1096   xfer += prot_->serializedSizeStop();
1097   return xfer;
1098 }
1099 
1100 template <class Protocol_>
write(Protocol_ * prot_) const1101 uint32_t StructWithFieldAdapter::write(Protocol_* prot_) const {
1102   uint32_t xfer = 0;
1103   xfer += prot_->writeStructBegin("StructWithFieldAdapter");
1104   bool previousFieldHasValue = true;
1105   {
1106     constexpr int16_t kPrevFieldId = 0;
1107     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "field", previousFieldHasValue);
1108     previousFieldHasValue = true;
1109     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, my::Adapter1::toThrift(this->__fbthrift_field_field));
1110     xfer += prot_->writeFieldEnd();
1111   }
1112   xfer += prot_->writeFieldStop();
1113   xfer += prot_->writeStructEnd();
1114   return xfer;
1115 }
1116 
1117 extern template void StructWithFieldAdapter::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1118 extern template uint32_t StructWithFieldAdapter::write<>(apache::thrift::BinaryProtocolWriter*) const;
1119 extern template uint32_t StructWithFieldAdapter::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1120 extern template uint32_t StructWithFieldAdapter::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1121 extern template void StructWithFieldAdapter::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1122 extern template uint32_t StructWithFieldAdapter::write<>(apache::thrift::CompactProtocolWriter*) const;
1123 extern template uint32_t StructWithFieldAdapter::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1124 extern template uint32_t StructWithFieldAdapter::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1125 
1126 } // cpp2
1127