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/types/gen-cpp2/module_types.h"
10 
11 #include <thrift/lib/cpp2/gen/module_types_tcc.h>
12 
13 namespace apache { namespace thrift { namespace fixtures { namespace types {
14 
15 }}}} // apache::thrift::fixtures::types
16 namespace std {
17 
18 } // std
19 
20 namespace apache { namespace thrift { namespace fixtures { namespace types {
21 
22 }}}} // apache::thrift::fixtures::types
23 namespace std {
24 
25 } // std
26 
27 namespace apache { namespace thrift { namespace fixtures { namespace types {
28 
29 }}}} // apache::thrift::fixtures::types
30 namespace std {
31 
32 } // std
33 
34 namespace apache { namespace thrift { namespace fixtures { namespace types {
35 
36 }}}} // apache::thrift::fixtures::types
37 namespace std {
38 
39 } // std
40 
41 
42 namespace apache {
43 namespace thrift {
44 namespace detail {
45 
46 template <>
47 struct TccStructTraits<::apache::thrift::fixtures::types::decorated_struct> {
48   static void translateFieldName(
49       folly::StringPiece _fname,
50       int16_t& fid,
51       apache::thrift::protocol::TType& _ftype) noexcept;
52 };
53 template <>
54 struct TccStructTraits<::apache::thrift::fixtures::types::ContainerStruct> {
55   static void translateFieldName(
56       folly::StringPiece _fname,
57       int16_t& fid,
58       apache::thrift::protocol::TType& _ftype) noexcept;
59 };
60 template <>
61 struct TccStructTraits<::apache::thrift::fixtures::types::CppTypeStruct> {
62   static void translateFieldName(
63       folly::StringPiece _fname,
64       int16_t& fid,
65       apache::thrift::protocol::TType& _ftype) noexcept;
66 };
67 template <>
68 struct TccStructTraits<::apache::thrift::fixtures::types::VirtualStruct> {
69   static void translateFieldName(
70       folly::StringPiece _fname,
71       int16_t& fid,
72       apache::thrift::protocol::TType& _ftype) noexcept;
73 };
74 template <>
75 struct TccStructTraits<::apache::thrift::fixtures::types::MyStructWithForwardRefEnum> {
76   static void translateFieldName(
77       folly::StringPiece _fname,
78       int16_t& fid,
79       apache::thrift::protocol::TType& _ftype) noexcept;
80 };
81 template <>
82 struct TccStructTraits<::apache::thrift::fixtures::types::TrivialNumeric> {
83   static void translateFieldName(
84       folly::StringPiece _fname,
85       int16_t& fid,
86       apache::thrift::protocol::TType& _ftype) noexcept;
87 };
88 template <>
89 struct TccStructTraits<::apache::thrift::fixtures::types::TrivialNestedWithDefault> {
90   static void translateFieldName(
91       folly::StringPiece _fname,
92       int16_t& fid,
93       apache::thrift::protocol::TType& _ftype) noexcept;
94 };
95 template <>
96 struct TccStructTraits<::apache::thrift::fixtures::types::ComplexString> {
97   static void translateFieldName(
98       folly::StringPiece _fname,
99       int16_t& fid,
100       apache::thrift::protocol::TType& _ftype) noexcept;
101 };
102 template <>
103 struct TccStructTraits<::apache::thrift::fixtures::types::ComplexNestedWithDefault> {
104   static void translateFieldName(
105       folly::StringPiece _fname,
106       int16_t& fid,
107       apache::thrift::protocol::TType& _ftype) noexcept;
108 };
109 template <>
110 struct TccStructTraits<::apache::thrift::fixtures::types::MinPadding> {
111   static void translateFieldName(
112       folly::StringPiece _fname,
113       int16_t& fid,
114       apache::thrift::protocol::TType& _ftype) noexcept;
115 };
116 template <>
117 struct TccStructTraits<::apache::thrift::fixtures::types::MyDataItem> {
118   static void translateFieldName(
119       folly::StringPiece _fname,
120       int16_t& fid,
121       apache::thrift::protocol::TType& _ftype) noexcept;
122 };
123 template <>
124 struct TccStructTraits<::apache::thrift::fixtures::types::MyStruct> {
125   static void translateFieldName(
126       folly::StringPiece _fname,
127       int16_t& fid,
128       apache::thrift::protocol::TType& _ftype) noexcept;
129 };
130 template <>
131 struct TccStructTraits<::apache::thrift::fixtures::types::Renaming> {
132   static void translateFieldName(
133       folly::StringPiece _fname,
134       int16_t& fid,
135       apache::thrift::protocol::TType& _ftype) noexcept;
136 };
137 template <>
138 struct TccStructTraits<::apache::thrift::fixtures::types::AnnotatedTypes> {
139   static void translateFieldName(
140       folly::StringPiece _fname,
141       int16_t& fid,
142       apache::thrift::protocol::TType& _ftype) noexcept;
143 };
144 template <>
145 struct TccStructTraits<::apache::thrift::fixtures::types::ForwardUsageStruct> {
146   static void translateFieldName(
147       folly::StringPiece _fname,
148       int16_t& fid,
149       apache::thrift::protocol::TType& _ftype) noexcept;
150 };
151 template <>
152 struct TccStructTraits<::apache::thrift::fixtures::types::ForwardUsageRoot> {
153   static void translateFieldName(
154       folly::StringPiece _fname,
155       int16_t& fid,
156       apache::thrift::protocol::TType& _ftype) noexcept;
157 };
158 template <>
159 struct TccStructTraits<::apache::thrift::fixtures::types::ForwardUsageByRef> {
160   static void translateFieldName(
161       folly::StringPiece _fname,
162       int16_t& fid,
163       apache::thrift::protocol::TType& _ftype) noexcept;
164 };
165 template <>
166 struct TccStructTraits<::apache::thrift::fixtures::types::NoexceptMoveEmpty> {
167   static void translateFieldName(
168       folly::StringPiece _fname,
169       int16_t& fid,
170       apache::thrift::protocol::TType& _ftype) noexcept;
171 };
172 template <>
173 struct TccStructTraits<::apache::thrift::fixtures::types::NoexceptMoveSimpleStruct> {
174   static void translateFieldName(
175       folly::StringPiece _fname,
176       int16_t& fid,
177       apache::thrift::protocol::TType& _ftype) noexcept;
178 };
179 template <>
180 struct TccStructTraits<::apache::thrift::fixtures::types::NoexceptMoveComplexStruct> {
181   static void translateFieldName(
182       folly::StringPiece _fname,
183       int16_t& fid,
184       apache::thrift::protocol::TType& _ftype) noexcept;
185 };
186 template <>
187 struct TccStructTraits<::apache::thrift::fixtures::types::NoExceptMoveUnion> {
188   static void translateFieldName(
189       folly::StringPiece _fname,
190       int16_t& fid,
191       apache::thrift::protocol::TType& _ftype) noexcept;
192 };
193 template <>
194 struct TccStructTraits<::apache::thrift::fixtures::types::AllocatorAware> {
195   static void translateFieldName(
196       folly::StringPiece _fname,
197       int16_t& fid,
198       apache::thrift::protocol::TType& _ftype) noexcept;
199 };
200 template <>
201 struct TccStructTraits<::apache::thrift::fixtures::types::AllocatorAware2> {
202   static void translateFieldName(
203       folly::StringPiece _fname,
204       int16_t& fid,
205       apache::thrift::protocol::TType& _ftype) noexcept;
206 };
207 template <>
208 struct TccStructTraits<::apache::thrift::fixtures::types::TypedefStruct> {
209   static void translateFieldName(
210       folly::StringPiece _fname,
211       int16_t& fid,
212       apache::thrift::protocol::TType& _ftype) noexcept;
213 };
214 template <>
215 struct TccStructTraits<::apache::thrift::fixtures::types::StructWithDoubleUnderscores> {
216   static void translateFieldName(
217       folly::StringPiece _fname,
218       int16_t& fid,
219       apache::thrift::protocol::TType& _ftype) noexcept;
220 };
221 
222 } // namespace detail
223 } // namespace thrift
224 } // namespace apache
225 
226 namespace apache { namespace thrift { namespace fixtures { namespace types {
227 
228 template <class Protocol_>
readNoXfer(Protocol_ * iprot)229 void decorated_struct::readNoXfer(Protocol_* iprot) {
230   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
231 
232   _readState.readStructBegin(iprot);
233 
234   using apache::thrift::TProtocolException;
235 
236 
237   if (UNLIKELY(!_readState.advanceToNextField(
238           iprot,
239           0,
240           1,
241           apache::thrift::protocol::T_STRING))) {
242     goto _loop;
243   }
244 _readField_field:
245   {
246     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_field, _readState);
247 
248   }
249  this->__isset.set(0, true);
250 
251   if (UNLIKELY(!_readState.advanceToNextField(
252           iprot,
253           1,
254           0,
255           apache::thrift::protocol::T_STOP))) {
256     goto _loop;
257   }
258 
259 _end:
260   _readState.readStructEnd(iprot);
261 
262   return;
263 
264 _loop:
265   _readState.afterAdvanceFailure(iprot);
266   if (_readState.atStop()) {
267     goto _end;
268   }
269   if (iprot->kUsesFieldNames()) {
270     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<decorated_struct>>();
271   }
272 
273   switch (_readState.fieldId) {
274     case 1:
275     {
276       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
277         goto _readField_field;
278       } else {
279         goto _skip;
280       }
281     }
282     default:
283     {
284 _skip:
285       _readState.skip(iprot);
286       _readState.readFieldEnd(iprot);
287       _readState.readFieldBeginNoInline(iprot);
288       goto _loop;
289     }
290   }
291 }
292 
293 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const294 uint32_t decorated_struct::serializedSize(Protocol_ const* prot_) const {
295   uint32_t xfer = 0;
296   xfer += prot_->serializedStructSize("decorated_struct");
297   {
298     xfer += prot_->serializedFieldSize("field", apache::thrift::protocol::T_STRING, 1);
299     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_field);
300   }
301   xfer += prot_->serializedSizeStop();
302   return xfer;
303 }
304 
305 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const306 uint32_t decorated_struct::serializedSizeZC(Protocol_ const* prot_) const {
307   uint32_t xfer = 0;
308   xfer += prot_->serializedStructSize("decorated_struct");
309   {
310     xfer += prot_->serializedFieldSize("field", apache::thrift::protocol::T_STRING, 1);
311     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_field);
312   }
313   xfer += prot_->serializedSizeStop();
314   return xfer;
315 }
316 
317 template <class Protocol_>
write(Protocol_ * prot_) const318 uint32_t decorated_struct::write(Protocol_* prot_) const {
319   uint32_t xfer = 0;
320   xfer += prot_->writeStructBegin("decorated_struct");
321   bool previousFieldHasValue = true;
322   {
323     constexpr int16_t kPrevFieldId = 0;
324     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "field", previousFieldHasValue);
325     previousFieldHasValue = true;
326     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_field);
327     xfer += prot_->writeFieldEnd();
328   }
329   xfer += prot_->writeFieldStop();
330   xfer += prot_->writeStructEnd();
331   return xfer;
332 }
333 
334 extern template void decorated_struct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
335 extern template uint32_t decorated_struct::write<>(apache::thrift::BinaryProtocolWriter*) const;
336 extern template uint32_t decorated_struct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
337 extern template uint32_t decorated_struct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
338 extern template void decorated_struct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
339 extern template uint32_t decorated_struct::write<>(apache::thrift::CompactProtocolWriter*) const;
340 extern template uint32_t decorated_struct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
341 extern template uint32_t decorated_struct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
342 
343 }}}} // apache::thrift::fixtures::types
344 namespace apache { namespace thrift { namespace fixtures { namespace types {
345 
346 template <class Protocol_>
readNoXfer(Protocol_ * iprot)347 void ContainerStruct::readNoXfer(Protocol_* iprot) {
348   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
349 
350   _readState.readStructBegin(iprot);
351 
352   using apache::thrift::TProtocolException;
353 
354 
355   if (UNLIKELY(!_readState.advanceToNextField(
356           iprot,
357           0,
358           12,
359           apache::thrift::protocol::T_LIST))) {
360     goto _loop;
361   }
362 _readField_fieldA:
363   {
364     _readState.beforeSubobject(iprot);
365     this->__fbthrift_field_fieldA = ::std::vector<::std::int32_t>();
366     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldA, _readState);
367     _readState.afterSubobject(iprot);
368 
369   }
370  this->__isset.set(0, true);
371 
372   if (UNLIKELY(!_readState.advanceToNextField(
373           iprot,
374           12,
375           2,
376           apache::thrift::protocol::T_LIST))) {
377     goto _loop;
378   }
379 _readField_fieldB:
380   {
381     _readState.beforeSubobject(iprot);
382     this->__fbthrift_field_fieldB = std::list<::std::int32_t>();
383     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldB, _readState);
384     _readState.afterSubobject(iprot);
385 
386   }
387  this->__isset.set(1, true);
388 
389   if (UNLIKELY(!_readState.advanceToNextField(
390           iprot,
391           2,
392           3,
393           apache::thrift::protocol::T_LIST))) {
394     goto _loop;
395   }
396 _readField_fieldC:
397   {
398     _readState.beforeSubobject(iprot);
399     this->__fbthrift_field_fieldC = std::deque<::std::int32_t>();
400     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::deque<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldC, _readState);
401     _readState.afterSubobject(iprot);
402 
403   }
404  this->__isset.set(2, true);
405 
406   if (UNLIKELY(!_readState.advanceToNextField(
407           iprot,
408           3,
409           4,
410           apache::thrift::protocol::T_LIST))) {
411     goto _loop;
412   }
413 _readField_fieldD:
414   {
415     _readState.beforeSubobject(iprot);
416     this->__fbthrift_field_fieldD = folly::fbvector<::std::int32_t>();
417     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::fbvector<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldD, _readState);
418     _readState.afterSubobject(iprot);
419 
420   }
421  this->__isset.set(3, true);
422 
423   if (UNLIKELY(!_readState.advanceToNextField(
424           iprot,
425           4,
426           5,
427           apache::thrift::protocol::T_LIST))) {
428     goto _loop;
429   }
430 _readField_fieldE:
431   {
432     _readState.beforeSubobject(iprot);
433     this->__fbthrift_field_fieldE = folly::small_vector<::std::int32_t>();
434     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::small_vector<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldE, _readState);
435     _readState.afterSubobject(iprot);
436 
437   }
438  this->__isset.set(4, true);
439 
440   if (UNLIKELY(!_readState.advanceToNextField(
441           iprot,
442           5,
443           6,
444           apache::thrift::protocol::T_SET))) {
445     goto _loop;
446   }
447 _readField_fieldF:
448   {
449     _readState.beforeSubobject(iprot);
450     this->__fbthrift_field_fieldF = folly::sorted_vector_set<::std::int32_t>();
451     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, folly::sorted_vector_set<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldF, _readState);
452     _readState.afterSubobject(iprot);
453 
454   }
455  this->__isset.set(5, true);
456 
457   if (UNLIKELY(!_readState.advanceToNextField(
458           iprot,
459           6,
460           7,
461           apache::thrift::protocol::T_MAP))) {
462     goto _loop;
463   }
464 _readField_fieldG:
465   {
466     _readState.beforeSubobject(iprot);
467     this->__fbthrift_field_fieldG = folly::sorted_vector_map<::std::int32_t, ::std::string>();
468     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, folly::sorted_vector_map<::std::int32_t, ::std::string>>::readWithContext(*iprot, this->__fbthrift_field_fieldG, _readState);
469     _readState.afterSubobject(iprot);
470 
471   }
472  this->__isset.set(6, true);
473 
474   if (UNLIKELY(!_readState.advanceToNextField(
475           iprot,
476           7,
477           8,
478           apache::thrift::protocol::T_MAP))) {
479     goto _loop;
480   }
481 _readField_fieldH:
482   {
483     _readState.beforeSubobject(iprot);
484     this->__fbthrift_field_fieldH = ::apache::thrift::fixtures::types::SomeMap();
485     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, ::apache::thrift::fixtures::types::SomeMap>::readWithContext(*iprot, this->__fbthrift_field_fieldH, _readState);
486     _readState.afterSubobject(iprot);
487 
488   }
489  this->__isset.set(7, true);
490 
491   if (UNLIKELY(!_readState.advanceToNextField(
492           iprot,
493           8,
494           0,
495           apache::thrift::protocol::T_STOP))) {
496     goto _loop;
497   }
498 
499 _end:
500   _readState.readStructEnd(iprot);
501 
502   return;
503 
504 _loop:
505   _readState.afterAdvanceFailure(iprot);
506   if (_readState.atStop()) {
507     goto _end;
508   }
509   if (iprot->kUsesFieldNames()) {
510     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ContainerStruct>>();
511   }
512 
513   switch (_readState.fieldId) {
514     case 12:
515     {
516       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
517         goto _readField_fieldA;
518       } else {
519         goto _skip;
520       }
521     }
522     case 2:
523     {
524       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
525         goto _readField_fieldB;
526       } else {
527         goto _skip;
528       }
529     }
530     case 3:
531     {
532       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
533         goto _readField_fieldC;
534       } else {
535         goto _skip;
536       }
537     }
538     case 4:
539     {
540       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
541         goto _readField_fieldD;
542       } else {
543         goto _skip;
544       }
545     }
546     case 5:
547     {
548       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
549         goto _readField_fieldE;
550       } else {
551         goto _skip;
552       }
553     }
554     case 6:
555     {
556       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET))) {
557         goto _readField_fieldF;
558       } else {
559         goto _skip;
560       }
561     }
562     case 7:
563     {
564       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
565         goto _readField_fieldG;
566       } else {
567         goto _skip;
568       }
569     }
570     case 8:
571     {
572       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
573         goto _readField_fieldH;
574       } else {
575         goto _skip;
576       }
577     }
578     default:
579     {
580 _skip:
581       _readState.skip(iprot);
582       _readState.readFieldEnd(iprot);
583       _readState.readFieldBeginNoInline(iprot);
584       goto _loop;
585     }
586   }
587 }
588 
589 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const590 uint32_t ContainerStruct::serializedSize(Protocol_ const* prot_) const {
591   uint32_t xfer = 0;
592   xfer += prot_->serializedStructSize("ContainerStruct");
593   {
594     xfer += prot_->serializedFieldSize("fieldA", apache::thrift::protocol::T_LIST, 12);
595     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldA);
596   }
597   {
598     xfer += prot_->serializedFieldSize("fieldB", apache::thrift::protocol::T_LIST, 2);
599     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldB);
600   }
601   {
602     xfer += prot_->serializedFieldSize("fieldC", apache::thrift::protocol::T_LIST, 3);
603     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::deque<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldC);
604   }
605   {
606     xfer += prot_->serializedFieldSize("fieldD", apache::thrift::protocol::T_LIST, 4);
607     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::fbvector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldD);
608   }
609   {
610     xfer += prot_->serializedFieldSize("fieldE", apache::thrift::protocol::T_LIST, 5);
611     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::small_vector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldE);
612   }
613   {
614     xfer += prot_->serializedFieldSize("fieldF", apache::thrift::protocol::T_SET, 6);
615     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, folly::sorted_vector_set<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldF);
616   }
617   {
618     xfer += prot_->serializedFieldSize("fieldG", apache::thrift::protocol::T_MAP, 7);
619     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, folly::sorted_vector_map<::std::int32_t, ::std::string>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldG);
620   }
621   {
622     xfer += prot_->serializedFieldSize("fieldH", apache::thrift::protocol::T_MAP, 8);
623     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, ::apache::thrift::fixtures::types::SomeMap>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldH);
624   }
625   xfer += prot_->serializedSizeStop();
626   return xfer;
627 }
628 
629 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const630 uint32_t ContainerStruct::serializedSizeZC(Protocol_ const* prot_) const {
631   uint32_t xfer = 0;
632   xfer += prot_->serializedStructSize("ContainerStruct");
633   {
634     xfer += prot_->serializedFieldSize("fieldA", apache::thrift::protocol::T_LIST, 12);
635     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldA);
636   }
637   {
638     xfer += prot_->serializedFieldSize("fieldB", apache::thrift::protocol::T_LIST, 2);
639     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldB);
640   }
641   {
642     xfer += prot_->serializedFieldSize("fieldC", apache::thrift::protocol::T_LIST, 3);
643     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::deque<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldC);
644   }
645   {
646     xfer += prot_->serializedFieldSize("fieldD", apache::thrift::protocol::T_LIST, 4);
647     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::fbvector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldD);
648   }
649   {
650     xfer += prot_->serializedFieldSize("fieldE", apache::thrift::protocol::T_LIST, 5);
651     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::small_vector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldE);
652   }
653   {
654     xfer += prot_->serializedFieldSize("fieldF", apache::thrift::protocol::T_SET, 6);
655     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, folly::sorted_vector_set<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldF);
656   }
657   {
658     xfer += prot_->serializedFieldSize("fieldG", apache::thrift::protocol::T_MAP, 7);
659     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, folly::sorted_vector_map<::std::int32_t, ::std::string>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldG);
660   }
661   {
662     xfer += prot_->serializedFieldSize("fieldH", apache::thrift::protocol::T_MAP, 8);
663     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, ::apache::thrift::fixtures::types::SomeMap>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldH);
664   }
665   xfer += prot_->serializedSizeStop();
666   return xfer;
667 }
668 
669 template <class Protocol_>
write(Protocol_ * prot_) const670 uint32_t ContainerStruct::write(Protocol_* prot_) const {
671   uint32_t xfer = 0;
672   xfer += prot_->writeStructBegin("ContainerStruct");
673   bool previousFieldHasValue = true;
674   {
675     constexpr int16_t kPrevFieldId = 0;
676     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 12, kPrevFieldId>(*prot_, "fieldA", previousFieldHasValue);
677     previousFieldHasValue = true;
678     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::write(*prot_, this->__fbthrift_field_fieldA);
679     xfer += prot_->writeFieldEnd();
680   }
681   {
682     constexpr int16_t kPrevFieldId = 12;
683     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 2, kPrevFieldId>(*prot_, "fieldB", previousFieldHasValue);
684     previousFieldHasValue = true;
685     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<::std::int32_t>>::write(*prot_, this->__fbthrift_field_fieldB);
686     xfer += prot_->writeFieldEnd();
687   }
688   {
689     constexpr int16_t kPrevFieldId = 2;
690     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 3, kPrevFieldId>(*prot_, "fieldC", previousFieldHasValue);
691     previousFieldHasValue = true;
692     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::deque<::std::int32_t>>::write(*prot_, this->__fbthrift_field_fieldC);
693     xfer += prot_->writeFieldEnd();
694   }
695   {
696     constexpr int16_t kPrevFieldId = 3;
697     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 4, kPrevFieldId>(*prot_, "fieldD", previousFieldHasValue);
698     previousFieldHasValue = true;
699     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::fbvector<::std::int32_t>>::write(*prot_, this->__fbthrift_field_fieldD);
700     xfer += prot_->writeFieldEnd();
701   }
702   {
703     constexpr int16_t kPrevFieldId = 4;
704     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 5, kPrevFieldId>(*prot_, "fieldE", previousFieldHasValue);
705     previousFieldHasValue = true;
706     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, folly::small_vector<::std::int32_t>>::write(*prot_, this->__fbthrift_field_fieldE);
707     xfer += prot_->writeFieldEnd();
708   }
709   {
710     constexpr int16_t kPrevFieldId = 5;
711     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 6, kPrevFieldId>(*prot_, "fieldF", previousFieldHasValue);
712     previousFieldHasValue = true;
713     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, folly::sorted_vector_set<::std::int32_t>>::write(*prot_, this->__fbthrift_field_fieldF);
714     xfer += prot_->writeFieldEnd();
715   }
716   {
717     constexpr int16_t kPrevFieldId = 6;
718     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 7, kPrevFieldId>(*prot_, "fieldG", previousFieldHasValue);
719     previousFieldHasValue = true;
720     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, folly::sorted_vector_map<::std::int32_t, ::std::string>>::write(*prot_, this->__fbthrift_field_fieldG);
721     xfer += prot_->writeFieldEnd();
722   }
723   {
724     constexpr int16_t kPrevFieldId = 7;
725     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 8, kPrevFieldId>(*prot_, "fieldH", previousFieldHasValue);
726     previousFieldHasValue = true;
727     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, ::apache::thrift::fixtures::types::SomeMap>::write(*prot_, this->__fbthrift_field_fieldH);
728     xfer += prot_->writeFieldEnd();
729   }
730   xfer += prot_->writeFieldStop();
731   xfer += prot_->writeStructEnd();
732   return xfer;
733 }
734 
735 extern template void ContainerStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
736 extern template uint32_t ContainerStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
737 extern template uint32_t ContainerStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
738 extern template uint32_t ContainerStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
739 extern template void ContainerStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
740 extern template uint32_t ContainerStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
741 extern template uint32_t ContainerStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
742 extern template uint32_t ContainerStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
743 
744 }}}} // apache::thrift::fixtures::types
745 namespace apache { namespace thrift { namespace fixtures { namespace types {
746 
747 template <class Protocol_>
readNoXfer(Protocol_ * iprot)748 void CppTypeStruct::readNoXfer(Protocol_* iprot) {
749   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
750 
751   _readState.readStructBegin(iprot);
752 
753   using apache::thrift::TProtocolException;
754 
755 
756   if (UNLIKELY(!_readState.advanceToNextField(
757           iprot,
758           0,
759           1,
760           apache::thrift::protocol::T_LIST))) {
761     goto _loop;
762   }
763 _readField_fieldA:
764   {
765     _readState.beforeSubobject(iprot);
766     this->__fbthrift_field_fieldA = std::list<int32_t>();
767     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<int32_t>>::readWithContext(*iprot, this->__fbthrift_field_fieldA, _readState);
768     _readState.afterSubobject(iprot);
769 
770   }
771  this->__isset.set(0, true);
772 
773   if (UNLIKELY(!_readState.advanceToNextField(
774           iprot,
775           1,
776           0,
777           apache::thrift::protocol::T_STOP))) {
778     goto _loop;
779   }
780 
781 _end:
782   _readState.readStructEnd(iprot);
783 
784   return;
785 
786 _loop:
787   _readState.afterAdvanceFailure(iprot);
788   if (_readState.atStop()) {
789     goto _end;
790   }
791   if (iprot->kUsesFieldNames()) {
792     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<CppTypeStruct>>();
793   }
794 
795   switch (_readState.fieldId) {
796     case 1:
797     {
798       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
799         goto _readField_fieldA;
800       } else {
801         goto _skip;
802       }
803     }
804     default:
805     {
806 _skip:
807       _readState.skip(iprot);
808       _readState.readFieldEnd(iprot);
809       _readState.readFieldBeginNoInline(iprot);
810       goto _loop;
811     }
812   }
813 }
814 
815 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const816 uint32_t CppTypeStruct::serializedSize(Protocol_ const* prot_) const {
817   uint32_t xfer = 0;
818   xfer += prot_->serializedStructSize("CppTypeStruct");
819   {
820     xfer += prot_->serializedFieldSize("fieldA", apache::thrift::protocol::T_LIST, 1);
821     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldA);
822   }
823   xfer += prot_->serializedSizeStop();
824   return xfer;
825 }
826 
827 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const828 uint32_t CppTypeStruct::serializedSizeZC(Protocol_ const* prot_) const {
829   uint32_t xfer = 0;
830   xfer += prot_->serializedStructSize("CppTypeStruct");
831   {
832     xfer += prot_->serializedFieldSize("fieldA", apache::thrift::protocol::T_LIST, 1);
833     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_fieldA);
834   }
835   xfer += prot_->serializedSizeStop();
836   return xfer;
837 }
838 
839 template <class Protocol_>
write(Protocol_ * prot_) const840 uint32_t CppTypeStruct::write(Protocol_* prot_) const {
841   uint32_t xfer = 0;
842   xfer += prot_->writeStructBegin("CppTypeStruct");
843   bool previousFieldHasValue = true;
844   {
845     constexpr int16_t kPrevFieldId = 0;
846     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 1, kPrevFieldId>(*prot_, "fieldA", previousFieldHasValue);
847     previousFieldHasValue = true;
848     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, std::list<int32_t>>::write(*prot_, this->__fbthrift_field_fieldA);
849     xfer += prot_->writeFieldEnd();
850   }
851   xfer += prot_->writeFieldStop();
852   xfer += prot_->writeStructEnd();
853   return xfer;
854 }
855 
856 extern template void CppTypeStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
857 extern template uint32_t CppTypeStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
858 extern template uint32_t CppTypeStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
859 extern template uint32_t CppTypeStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
860 extern template void CppTypeStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
861 extern template uint32_t CppTypeStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
862 extern template uint32_t CppTypeStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
863 extern template uint32_t CppTypeStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
864 
865 }}}} // apache::thrift::fixtures::types
866 namespace apache { namespace thrift { namespace fixtures { namespace types {
867 
868 template <class Protocol_>
readNoXfer(Protocol_ * iprot)869 void VirtualStruct::readNoXfer(Protocol_* iprot) {
870   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
871 
872   _readState.readStructBegin(iprot);
873 
874   using apache::thrift::TProtocolException;
875 
876 
877   if (UNLIKELY(!_readState.advanceToNextField(
878           iprot,
879           0,
880           1,
881           apache::thrift::protocol::T_I64))) {
882     goto _loop;
883   }
884 _readField_MyIntField:
885   {
886     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_MyIntField, _readState);
887 
888   }
889  this->__isset.set(0, true);
890 
891   if (UNLIKELY(!_readState.advanceToNextField(
892           iprot,
893           1,
894           0,
895           apache::thrift::protocol::T_STOP))) {
896     goto _loop;
897   }
898 
899 _end:
900   _readState.readStructEnd(iprot);
901 
902   return;
903 
904 _loop:
905   _readState.afterAdvanceFailure(iprot);
906   if (_readState.atStop()) {
907     goto _end;
908   }
909   if (iprot->kUsesFieldNames()) {
910     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<VirtualStruct>>();
911   }
912 
913   switch (_readState.fieldId) {
914     case 1:
915     {
916       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
917         goto _readField_MyIntField;
918       } else {
919         goto _skip;
920       }
921     }
922     default:
923     {
924 _skip:
925       _readState.skip(iprot);
926       _readState.readFieldEnd(iprot);
927       _readState.readFieldBeginNoInline(iprot);
928       goto _loop;
929     }
930   }
931 }
932 
933 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const934 uint32_t VirtualStruct::serializedSize(Protocol_ const* prot_) const {
935   uint32_t xfer = 0;
936   xfer += prot_->serializedStructSize("VirtualStruct");
937   {
938     xfer += prot_->serializedFieldSize("MyIntField", apache::thrift::protocol::T_I64, 1);
939     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_MyIntField);
940   }
941   xfer += prot_->serializedSizeStop();
942   return xfer;
943 }
944 
945 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const946 uint32_t VirtualStruct::serializedSizeZC(Protocol_ const* prot_) const {
947   uint32_t xfer = 0;
948   xfer += prot_->serializedStructSize("VirtualStruct");
949   {
950     xfer += prot_->serializedFieldSize("MyIntField", apache::thrift::protocol::T_I64, 1);
951     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_MyIntField);
952   }
953   xfer += prot_->serializedSizeStop();
954   return xfer;
955 }
956 
957 template <class Protocol_>
write(Protocol_ * prot_) const958 uint32_t VirtualStruct::write(Protocol_* prot_) const {
959   uint32_t xfer = 0;
960   xfer += prot_->writeStructBegin("VirtualStruct");
961   bool previousFieldHasValue = true;
962   {
963     constexpr int16_t kPrevFieldId = 0;
964     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 1, kPrevFieldId>(*prot_, "MyIntField", previousFieldHasValue);
965     previousFieldHasValue = true;
966     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_MyIntField);
967     xfer += prot_->writeFieldEnd();
968   }
969   xfer += prot_->writeFieldStop();
970   xfer += prot_->writeStructEnd();
971   return xfer;
972 }
973 
974 extern template void VirtualStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
975 extern template uint32_t VirtualStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
976 extern template uint32_t VirtualStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
977 extern template uint32_t VirtualStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
978 extern template void VirtualStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
979 extern template uint32_t VirtualStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
980 extern template uint32_t VirtualStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
981 extern template uint32_t VirtualStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
982 
983 }}}} // apache::thrift::fixtures::types
984 namespace apache { namespace thrift { namespace fixtures { namespace types {
985 
986 template <class Protocol_>
readNoXfer(Protocol_ * iprot)987 void MyStructWithForwardRefEnum::readNoXfer(Protocol_* iprot) {
988   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
989 
990   _readState.readStructBegin(iprot);
991 
992   using apache::thrift::TProtocolException;
993 
994 
995   if (UNLIKELY(!_readState.advanceToNextField(
996           iprot,
997           0,
998           1,
999           apache::thrift::protocol::T_I32))) {
1000     goto _loop;
1001   }
1002 _readField_a:
1003   {
1004     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::readWithContext(*iprot, this->__fbthrift_field_a, _readState);
1005 
1006   }
1007  this->__isset.set(0, true);
1008 
1009   if (UNLIKELY(!_readState.advanceToNextField(
1010           iprot,
1011           1,
1012           2,
1013           apache::thrift::protocol::T_I32))) {
1014     goto _loop;
1015   }
1016 _readField_b:
1017   {
1018     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::readWithContext(*iprot, this->__fbthrift_field_b, _readState);
1019 
1020   }
1021  this->__isset.set(1, true);
1022 
1023   if (UNLIKELY(!_readState.advanceToNextField(
1024           iprot,
1025           2,
1026           0,
1027           apache::thrift::protocol::T_STOP))) {
1028     goto _loop;
1029   }
1030 
1031 _end:
1032   _readState.readStructEnd(iprot);
1033 
1034   return;
1035 
1036 _loop:
1037   _readState.afterAdvanceFailure(iprot);
1038   if (_readState.atStop()) {
1039     goto _end;
1040   }
1041   if (iprot->kUsesFieldNames()) {
1042     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<MyStructWithForwardRefEnum>>();
1043   }
1044 
1045   switch (_readState.fieldId) {
1046     case 1:
1047     {
1048       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1049         goto _readField_a;
1050       } else {
1051         goto _skip;
1052       }
1053     }
1054     case 2:
1055     {
1056       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1057         goto _readField_b;
1058       } else {
1059         goto _skip;
1060       }
1061     }
1062     default:
1063     {
1064 _skip:
1065       _readState.skip(iprot);
1066       _readState.readFieldEnd(iprot);
1067       _readState.readFieldBeginNoInline(iprot);
1068       goto _loop;
1069     }
1070   }
1071 }
1072 
1073 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1074 uint32_t MyStructWithForwardRefEnum::serializedSize(Protocol_ const* prot_) const {
1075   uint32_t xfer = 0;
1076   xfer += prot_->serializedStructSize("MyStructWithForwardRefEnum");
1077   {
1078     xfer += prot_->serializedFieldSize("a", apache::thrift::protocol::T_I32, 1);
1079     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::serializedSize<false>(*prot_, this->__fbthrift_field_a);
1080   }
1081   {
1082     xfer += prot_->serializedFieldSize("b", apache::thrift::protocol::T_I32, 2);
1083     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::serializedSize<false>(*prot_, this->__fbthrift_field_b);
1084   }
1085   xfer += prot_->serializedSizeStop();
1086   return xfer;
1087 }
1088 
1089 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1090 uint32_t MyStructWithForwardRefEnum::serializedSizeZC(Protocol_ const* prot_) const {
1091   uint32_t xfer = 0;
1092   xfer += prot_->serializedStructSize("MyStructWithForwardRefEnum");
1093   {
1094     xfer += prot_->serializedFieldSize("a", apache::thrift::protocol::T_I32, 1);
1095     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::serializedSize<false>(*prot_, this->__fbthrift_field_a);
1096   }
1097   {
1098     xfer += prot_->serializedFieldSize("b", apache::thrift::protocol::T_I32, 2);
1099     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::serializedSize<false>(*prot_, this->__fbthrift_field_b);
1100   }
1101   xfer += prot_->serializedSizeStop();
1102   return xfer;
1103 }
1104 
1105 template <class Protocol_>
write(Protocol_ * prot_) const1106 uint32_t MyStructWithForwardRefEnum::write(Protocol_* prot_) const {
1107   uint32_t xfer = 0;
1108   xfer += prot_->writeStructBegin("MyStructWithForwardRefEnum");
1109   bool previousFieldHasValue = true;
1110   {
1111     constexpr int16_t kPrevFieldId = 0;
1112     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "a", previousFieldHasValue);
1113     previousFieldHasValue = true;
1114     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::write(*prot_, this->__fbthrift_field_a);
1115     xfer += prot_->writeFieldEnd();
1116   }
1117   {
1118     constexpr int16_t kPrevFieldId = 1;
1119     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 2, kPrevFieldId>(*prot_, "b", previousFieldHasValue);
1120     previousFieldHasValue = true;
1121     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::apache::thrift::fixtures::types::MyForwardRefEnum>::write(*prot_, this->__fbthrift_field_b);
1122     xfer += prot_->writeFieldEnd();
1123   }
1124   xfer += prot_->writeFieldStop();
1125   xfer += prot_->writeStructEnd();
1126   return xfer;
1127 }
1128 
1129 extern template void MyStructWithForwardRefEnum::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1130 extern template uint32_t MyStructWithForwardRefEnum::write<>(apache::thrift::BinaryProtocolWriter*) const;
1131 extern template uint32_t MyStructWithForwardRefEnum::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1132 extern template uint32_t MyStructWithForwardRefEnum::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1133 extern template void MyStructWithForwardRefEnum::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1134 extern template uint32_t MyStructWithForwardRefEnum::write<>(apache::thrift::CompactProtocolWriter*) const;
1135 extern template uint32_t MyStructWithForwardRefEnum::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1136 extern template uint32_t MyStructWithForwardRefEnum::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1137 
1138 }}}} // apache::thrift::fixtures::types
1139 namespace apache { namespace thrift { namespace fixtures { namespace types {
1140 
1141 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1142 void TrivialNumeric::readNoXfer(Protocol_* iprot) {
1143   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1144 
1145   _readState.readStructBegin(iprot);
1146 
1147   using apache::thrift::TProtocolException;
1148 
1149 
1150   if (UNLIKELY(!_readState.advanceToNextField(
1151           iprot,
1152           0,
1153           1,
1154           apache::thrift::protocol::T_I32))) {
1155     goto _loop;
1156   }
1157 _readField_a:
1158   {
1159     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_a, _readState);
1160 
1161   }
1162  this->__isset.set(0, true);
1163 
1164   if (UNLIKELY(!_readState.advanceToNextField(
1165           iprot,
1166           1,
1167           2,
1168           apache::thrift::protocol::T_BOOL))) {
1169     goto _loop;
1170   }
1171 _readField_b:
1172   {
1173     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::readWithContext(*iprot, this->__fbthrift_field_b, _readState);
1174 
1175   }
1176  this->__isset.set(1, true);
1177 
1178   if (UNLIKELY(!_readState.advanceToNextField(
1179           iprot,
1180           2,
1181           0,
1182           apache::thrift::protocol::T_STOP))) {
1183     goto _loop;
1184   }
1185 
1186 _end:
1187   _readState.readStructEnd(iprot);
1188 
1189   return;
1190 
1191 _loop:
1192   _readState.afterAdvanceFailure(iprot);
1193   if (_readState.atStop()) {
1194     goto _end;
1195   }
1196   if (iprot->kUsesFieldNames()) {
1197     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<TrivialNumeric>>();
1198   }
1199 
1200   switch (_readState.fieldId) {
1201     case 1:
1202     {
1203       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1204         goto _readField_a;
1205       } else {
1206         goto _skip;
1207       }
1208     }
1209     case 2:
1210     {
1211       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_BOOL))) {
1212         goto _readField_b;
1213       } else {
1214         goto _skip;
1215       }
1216     }
1217     default:
1218     {
1219 _skip:
1220       _readState.skip(iprot);
1221       _readState.readFieldEnd(iprot);
1222       _readState.readFieldBeginNoInline(iprot);
1223       goto _loop;
1224     }
1225   }
1226 }
1227 
1228 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1229 uint32_t TrivialNumeric::serializedSize(Protocol_ const* prot_) const {
1230   uint32_t xfer = 0;
1231   xfer += prot_->serializedStructSize("TrivialNumeric");
1232   {
1233     xfer += prot_->serializedFieldSize("a", apache::thrift::protocol::T_I32, 1);
1234     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_a);
1235   }
1236   {
1237     xfer += prot_->serializedFieldSize("b", apache::thrift::protocol::T_BOOL, 2);
1238     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::serializedSize<false>(*prot_, this->__fbthrift_field_b);
1239   }
1240   xfer += prot_->serializedSizeStop();
1241   return xfer;
1242 }
1243 
1244 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1245 uint32_t TrivialNumeric::serializedSizeZC(Protocol_ const* prot_) const {
1246   uint32_t xfer = 0;
1247   xfer += prot_->serializedStructSize("TrivialNumeric");
1248   {
1249     xfer += prot_->serializedFieldSize("a", apache::thrift::protocol::T_I32, 1);
1250     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_a);
1251   }
1252   {
1253     xfer += prot_->serializedFieldSize("b", apache::thrift::protocol::T_BOOL, 2);
1254     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::serializedSize<false>(*prot_, this->__fbthrift_field_b);
1255   }
1256   xfer += prot_->serializedSizeStop();
1257   return xfer;
1258 }
1259 
1260 template <class Protocol_>
write(Protocol_ * prot_) const1261 uint32_t TrivialNumeric::write(Protocol_* prot_) const {
1262   uint32_t xfer = 0;
1263   xfer += prot_->writeStructBegin("TrivialNumeric");
1264   bool previousFieldHasValue = true;
1265   {
1266     constexpr int16_t kPrevFieldId = 0;
1267     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "a", previousFieldHasValue);
1268     previousFieldHasValue = true;
1269     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_a);
1270     xfer += prot_->writeFieldEnd();
1271   }
1272   {
1273     constexpr int16_t kPrevFieldId = 1;
1274     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_BOOL, 2, kPrevFieldId>(*prot_, "b", previousFieldHasValue);
1275     previousFieldHasValue = true;
1276     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::write(*prot_, this->__fbthrift_field_b);
1277     xfer += prot_->writeFieldEnd();
1278   }
1279   xfer += prot_->writeFieldStop();
1280   xfer += prot_->writeStructEnd();
1281   return xfer;
1282 }
1283 
1284 extern template void TrivialNumeric::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1285 extern template uint32_t TrivialNumeric::write<>(apache::thrift::BinaryProtocolWriter*) const;
1286 extern template uint32_t TrivialNumeric::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1287 extern template uint32_t TrivialNumeric::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1288 extern template void TrivialNumeric::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1289 extern template uint32_t TrivialNumeric::write<>(apache::thrift::CompactProtocolWriter*) const;
1290 extern template uint32_t TrivialNumeric::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1291 extern template uint32_t TrivialNumeric::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1292 
1293 }}}} // apache::thrift::fixtures::types
1294 namespace apache { namespace thrift { namespace fixtures { namespace types {
1295 
1296 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1297 void TrivialNestedWithDefault::readNoXfer(Protocol_* iprot) {
1298   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1299 
1300   _readState.readStructBegin(iprot);
1301 
1302   using apache::thrift::TProtocolException;
1303 
1304 
1305   if (UNLIKELY(!_readState.advanceToNextField(
1306           iprot,
1307           0,
1308           1,
1309           apache::thrift::protocol::T_I32))) {
1310     goto _loop;
1311   }
1312 _readField_z:
1313   {
1314     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_z, _readState);
1315 
1316   }
1317  this->__isset.set(0, true);
1318 
1319   if (UNLIKELY(!_readState.advanceToNextField(
1320           iprot,
1321           1,
1322           2,
1323           apache::thrift::protocol::T_STRUCT))) {
1324     goto _loop;
1325   }
1326 _readField_n:
1327   {
1328     _readState.beforeSubobject(iprot);
1329     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::TrivialNumeric>::readWithContext(*iprot, this->__fbthrift_field_n, _readState);
1330     _readState.afterSubobject(iprot);
1331 
1332   }
1333  this->__isset.set(1, true);
1334 
1335   if (UNLIKELY(!_readState.advanceToNextField(
1336           iprot,
1337           2,
1338           0,
1339           apache::thrift::protocol::T_STOP))) {
1340     goto _loop;
1341   }
1342 
1343 _end:
1344   _readState.readStructEnd(iprot);
1345 
1346   return;
1347 
1348 _loop:
1349   _readState.afterAdvanceFailure(iprot);
1350   if (_readState.atStop()) {
1351     goto _end;
1352   }
1353   if (iprot->kUsesFieldNames()) {
1354     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<TrivialNestedWithDefault>>();
1355   }
1356 
1357   switch (_readState.fieldId) {
1358     case 1:
1359     {
1360       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1361         goto _readField_z;
1362       } else {
1363         goto _skip;
1364       }
1365     }
1366     case 2:
1367     {
1368       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
1369         goto _readField_n;
1370       } else {
1371         goto _skip;
1372       }
1373     }
1374     default:
1375     {
1376 _skip:
1377       _readState.skip(iprot);
1378       _readState.readFieldEnd(iprot);
1379       _readState.readFieldBeginNoInline(iprot);
1380       goto _loop;
1381     }
1382   }
1383 }
1384 
1385 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1386 uint32_t TrivialNestedWithDefault::serializedSize(Protocol_ const* prot_) const {
1387   uint32_t xfer = 0;
1388   xfer += prot_->serializedStructSize("TrivialNestedWithDefault");
1389   {
1390     xfer += prot_->serializedFieldSize("z", apache::thrift::protocol::T_I32, 1);
1391     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_z);
1392   }
1393   {
1394     xfer += prot_->serializedFieldSize("n", apache::thrift::protocol::T_STRUCT, 2);
1395     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::TrivialNumeric>::serializedSize<false>(*prot_, this->__fbthrift_field_n);
1396   }
1397   xfer += prot_->serializedSizeStop();
1398   return xfer;
1399 }
1400 
1401 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1402 uint32_t TrivialNestedWithDefault::serializedSizeZC(Protocol_ const* prot_) const {
1403   uint32_t xfer = 0;
1404   xfer += prot_->serializedStructSize("TrivialNestedWithDefault");
1405   {
1406     xfer += prot_->serializedFieldSize("z", apache::thrift::protocol::T_I32, 1);
1407     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_z);
1408   }
1409   {
1410     xfer += prot_->serializedFieldSize("n", apache::thrift::protocol::T_STRUCT, 2);
1411     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::TrivialNumeric>::serializedSize<true>(*prot_, this->__fbthrift_field_n);
1412   }
1413   xfer += prot_->serializedSizeStop();
1414   return xfer;
1415 }
1416 
1417 template <class Protocol_>
write(Protocol_ * prot_) const1418 uint32_t TrivialNestedWithDefault::write(Protocol_* prot_) const {
1419   uint32_t xfer = 0;
1420   xfer += prot_->writeStructBegin("TrivialNestedWithDefault");
1421   bool previousFieldHasValue = true;
1422   {
1423     constexpr int16_t kPrevFieldId = 0;
1424     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "z", previousFieldHasValue);
1425     previousFieldHasValue = true;
1426     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_z);
1427     xfer += prot_->writeFieldEnd();
1428   }
1429   {
1430     constexpr int16_t kPrevFieldId = 1;
1431     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "n", previousFieldHasValue);
1432     previousFieldHasValue = true;
1433     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::TrivialNumeric>::write(*prot_, this->__fbthrift_field_n);
1434     xfer += prot_->writeFieldEnd();
1435   }
1436   xfer += prot_->writeFieldStop();
1437   xfer += prot_->writeStructEnd();
1438   return xfer;
1439 }
1440 
1441 extern template void TrivialNestedWithDefault::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1442 extern template uint32_t TrivialNestedWithDefault::write<>(apache::thrift::BinaryProtocolWriter*) const;
1443 extern template uint32_t TrivialNestedWithDefault::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1444 extern template uint32_t TrivialNestedWithDefault::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1445 extern template void TrivialNestedWithDefault::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1446 extern template uint32_t TrivialNestedWithDefault::write<>(apache::thrift::CompactProtocolWriter*) const;
1447 extern template uint32_t TrivialNestedWithDefault::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1448 extern template uint32_t TrivialNestedWithDefault::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1449 
1450 }}}} // apache::thrift::fixtures::types
1451 namespace apache { namespace thrift { namespace fixtures { namespace types {
1452 
1453 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1454 void ComplexString::readNoXfer(Protocol_* iprot) {
1455   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1456 
1457   _readState.readStructBegin(iprot);
1458 
1459   using apache::thrift::TProtocolException;
1460 
1461 
1462   if (UNLIKELY(!_readState.advanceToNextField(
1463           iprot,
1464           0,
1465           1,
1466           apache::thrift::protocol::T_STRING))) {
1467     goto _loop;
1468   }
1469 _readField_a:
1470   {
1471     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_a, _readState);
1472 
1473   }
1474  this->__isset.set(0, true);
1475 
1476   if (UNLIKELY(!_readState.advanceToNextField(
1477           iprot,
1478           1,
1479           2,
1480           apache::thrift::protocol::T_MAP))) {
1481     goto _loop;
1482   }
1483 _readField_b:
1484   {
1485     _readState.beforeSubobject(iprot);
1486     this->__fbthrift_field_b = ::std::map<::std::string, ::std::int32_t>();
1487     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::integral>, ::std::map<::std::string, ::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_b, _readState);
1488     _readState.afterSubobject(iprot);
1489 
1490   }
1491  this->__isset.set(1, true);
1492 
1493   if (UNLIKELY(!_readState.advanceToNextField(
1494           iprot,
1495           2,
1496           0,
1497           apache::thrift::protocol::T_STOP))) {
1498     goto _loop;
1499   }
1500 
1501 _end:
1502   _readState.readStructEnd(iprot);
1503 
1504   return;
1505 
1506 _loop:
1507   _readState.afterAdvanceFailure(iprot);
1508   if (_readState.atStop()) {
1509     goto _end;
1510   }
1511   if (iprot->kUsesFieldNames()) {
1512     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ComplexString>>();
1513   }
1514 
1515   switch (_readState.fieldId) {
1516     case 1:
1517     {
1518       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
1519         goto _readField_a;
1520       } else {
1521         goto _skip;
1522       }
1523     }
1524     case 2:
1525     {
1526       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
1527         goto _readField_b;
1528       } else {
1529         goto _skip;
1530       }
1531     }
1532     default:
1533     {
1534 _skip:
1535       _readState.skip(iprot);
1536       _readState.readFieldEnd(iprot);
1537       _readState.readFieldBeginNoInline(iprot);
1538       goto _loop;
1539     }
1540   }
1541 }
1542 
1543 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1544 uint32_t ComplexString::serializedSize(Protocol_ const* prot_) const {
1545   uint32_t xfer = 0;
1546   xfer += prot_->serializedStructSize("ComplexString");
1547   {
1548     xfer += prot_->serializedFieldSize("a", apache::thrift::protocol::T_STRING, 1);
1549     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_a);
1550   }
1551   {
1552     xfer += prot_->serializedFieldSize("b", apache::thrift::protocol::T_MAP, 2);
1553     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::integral>, ::std::map<::std::string, ::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_b);
1554   }
1555   xfer += prot_->serializedSizeStop();
1556   return xfer;
1557 }
1558 
1559 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1560 uint32_t ComplexString::serializedSizeZC(Protocol_ const* prot_) const {
1561   uint32_t xfer = 0;
1562   xfer += prot_->serializedStructSize("ComplexString");
1563   {
1564     xfer += prot_->serializedFieldSize("a", apache::thrift::protocol::T_STRING, 1);
1565     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_a);
1566   }
1567   {
1568     xfer += prot_->serializedFieldSize("b", apache::thrift::protocol::T_MAP, 2);
1569     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::integral>, ::std::map<::std::string, ::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_b);
1570   }
1571   xfer += prot_->serializedSizeStop();
1572   return xfer;
1573 }
1574 
1575 template <class Protocol_>
write(Protocol_ * prot_) const1576 uint32_t ComplexString::write(Protocol_* prot_) const {
1577   uint32_t xfer = 0;
1578   xfer += prot_->writeStructBegin("ComplexString");
1579   bool previousFieldHasValue = true;
1580   {
1581     constexpr int16_t kPrevFieldId = 0;
1582     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "a", previousFieldHasValue);
1583     previousFieldHasValue = true;
1584     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_a);
1585     xfer += prot_->writeFieldEnd();
1586   }
1587   {
1588     constexpr int16_t kPrevFieldId = 1;
1589     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 2, kPrevFieldId>(*prot_, "b", previousFieldHasValue);
1590     previousFieldHasValue = true;
1591     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::integral>, ::std::map<::std::string, ::std::int32_t>>::write(*prot_, this->__fbthrift_field_b);
1592     xfer += prot_->writeFieldEnd();
1593   }
1594   xfer += prot_->writeFieldStop();
1595   xfer += prot_->writeStructEnd();
1596   return xfer;
1597 }
1598 
1599 extern template void ComplexString::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1600 extern template uint32_t ComplexString::write<>(apache::thrift::BinaryProtocolWriter*) const;
1601 extern template uint32_t ComplexString::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1602 extern template uint32_t ComplexString::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1603 extern template void ComplexString::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1604 extern template uint32_t ComplexString::write<>(apache::thrift::CompactProtocolWriter*) const;
1605 extern template uint32_t ComplexString::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1606 extern template uint32_t ComplexString::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1607 
1608 }}}} // apache::thrift::fixtures::types
1609 namespace apache { namespace thrift { namespace fixtures { namespace types {
1610 
1611 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1612 void ComplexNestedWithDefault::readNoXfer(Protocol_* iprot) {
1613   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1614 
1615   _readState.readStructBegin(iprot);
1616 
1617   using apache::thrift::TProtocolException;
1618 
1619 
1620   if (UNLIKELY(!_readState.advanceToNextField(
1621           iprot,
1622           0,
1623           1,
1624           apache::thrift::protocol::T_STRING))) {
1625     goto _loop;
1626   }
1627 _readField_z:
1628   {
1629     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_z, _readState);
1630 
1631   }
1632  this->__isset.set(0, true);
1633 
1634   if (UNLIKELY(!_readState.advanceToNextField(
1635           iprot,
1636           1,
1637           2,
1638           apache::thrift::protocol::T_STRUCT))) {
1639     goto _loop;
1640   }
1641 _readField_n:
1642   {
1643     _readState.beforeSubobject(iprot);
1644     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ComplexString>::readWithContext(*iprot, this->__fbthrift_field_n, _readState);
1645     _readState.afterSubobject(iprot);
1646 
1647   }
1648  this->__isset.set(1, true);
1649 
1650   if (UNLIKELY(!_readState.advanceToNextField(
1651           iprot,
1652           2,
1653           0,
1654           apache::thrift::protocol::T_STOP))) {
1655     goto _loop;
1656   }
1657 
1658 _end:
1659   _readState.readStructEnd(iprot);
1660 
1661   return;
1662 
1663 _loop:
1664   _readState.afterAdvanceFailure(iprot);
1665   if (_readState.atStop()) {
1666     goto _end;
1667   }
1668   if (iprot->kUsesFieldNames()) {
1669     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ComplexNestedWithDefault>>();
1670   }
1671 
1672   switch (_readState.fieldId) {
1673     case 1:
1674     {
1675       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
1676         goto _readField_z;
1677       } else {
1678         goto _skip;
1679       }
1680     }
1681     case 2:
1682     {
1683       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
1684         goto _readField_n;
1685       } else {
1686         goto _skip;
1687       }
1688     }
1689     default:
1690     {
1691 _skip:
1692       _readState.skip(iprot);
1693       _readState.readFieldEnd(iprot);
1694       _readState.readFieldBeginNoInline(iprot);
1695       goto _loop;
1696     }
1697   }
1698 }
1699 
1700 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1701 uint32_t ComplexNestedWithDefault::serializedSize(Protocol_ const* prot_) const {
1702   uint32_t xfer = 0;
1703   xfer += prot_->serializedStructSize("ComplexNestedWithDefault");
1704   {
1705     xfer += prot_->serializedFieldSize("z", apache::thrift::protocol::T_STRING, 1);
1706     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_z);
1707   }
1708   {
1709     xfer += prot_->serializedFieldSize("n", apache::thrift::protocol::T_STRUCT, 2);
1710     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ComplexString>::serializedSize<false>(*prot_, this->__fbthrift_field_n);
1711   }
1712   xfer += prot_->serializedSizeStop();
1713   return xfer;
1714 }
1715 
1716 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1717 uint32_t ComplexNestedWithDefault::serializedSizeZC(Protocol_ const* prot_) const {
1718   uint32_t xfer = 0;
1719   xfer += prot_->serializedStructSize("ComplexNestedWithDefault");
1720   {
1721     xfer += prot_->serializedFieldSize("z", apache::thrift::protocol::T_STRING, 1);
1722     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_z);
1723   }
1724   {
1725     xfer += prot_->serializedFieldSize("n", apache::thrift::protocol::T_STRUCT, 2);
1726     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ComplexString>::serializedSize<true>(*prot_, this->__fbthrift_field_n);
1727   }
1728   xfer += prot_->serializedSizeStop();
1729   return xfer;
1730 }
1731 
1732 template <class Protocol_>
write(Protocol_ * prot_) const1733 uint32_t ComplexNestedWithDefault::write(Protocol_* prot_) const {
1734   uint32_t xfer = 0;
1735   xfer += prot_->writeStructBegin("ComplexNestedWithDefault");
1736   bool previousFieldHasValue = true;
1737   {
1738     constexpr int16_t kPrevFieldId = 0;
1739     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "z", previousFieldHasValue);
1740     previousFieldHasValue = true;
1741     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_z);
1742     xfer += prot_->writeFieldEnd();
1743   }
1744   {
1745     constexpr int16_t kPrevFieldId = 1;
1746     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "n", previousFieldHasValue);
1747     previousFieldHasValue = true;
1748     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ComplexString>::write(*prot_, this->__fbthrift_field_n);
1749     xfer += prot_->writeFieldEnd();
1750   }
1751   xfer += prot_->writeFieldStop();
1752   xfer += prot_->writeStructEnd();
1753   return xfer;
1754 }
1755 
1756 extern template void ComplexNestedWithDefault::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1757 extern template uint32_t ComplexNestedWithDefault::write<>(apache::thrift::BinaryProtocolWriter*) const;
1758 extern template uint32_t ComplexNestedWithDefault::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1759 extern template uint32_t ComplexNestedWithDefault::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1760 extern template void ComplexNestedWithDefault::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1761 extern template uint32_t ComplexNestedWithDefault::write<>(apache::thrift::CompactProtocolWriter*) const;
1762 extern template uint32_t ComplexNestedWithDefault::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1763 extern template uint32_t ComplexNestedWithDefault::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1764 
1765 }}}} // apache::thrift::fixtures::types
1766 namespace apache { namespace thrift { namespace fixtures { namespace types {
1767 
1768 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1769 void MinPadding::readNoXfer(Protocol_* iprot) {
1770   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1771 
1772   _readState.readStructBegin(iprot);
1773 
1774   using apache::thrift::TProtocolException;
1775 
1776 
1777   if (UNLIKELY(!_readState.advanceToNextField(
1778           iprot,
1779           0,
1780           1,
1781           apache::thrift::protocol::T_BYTE))) {
1782     goto _loop;
1783   }
1784 _readField_small:
1785   {
1786     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::readWithContext(*iprot, this->small, _readState);
1787 
1788   }
1789 
1790   if (UNLIKELY(!_readState.advanceToNextField(
1791           iprot,
1792           1,
1793           2,
1794           apache::thrift::protocol::T_I64))) {
1795     goto _loop;
1796   }
1797 _readField_big:
1798   {
1799     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->big, _readState);
1800 
1801   }
1802 
1803   if (UNLIKELY(!_readState.advanceToNextField(
1804           iprot,
1805           2,
1806           3,
1807           apache::thrift::protocol::T_I16))) {
1808     goto _loop;
1809   }
1810 _readField_medium:
1811   {
1812     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::readWithContext(*iprot, this->medium, _readState);
1813 
1814   }
1815 
1816   if (UNLIKELY(!_readState.advanceToNextField(
1817           iprot,
1818           3,
1819           4,
1820           apache::thrift::protocol::T_I32))) {
1821     goto _loop;
1822   }
1823 _readField_biggish:
1824   {
1825     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->biggish, _readState);
1826 
1827   }
1828 
1829   if (UNLIKELY(!_readState.advanceToNextField(
1830           iprot,
1831           4,
1832           5,
1833           apache::thrift::protocol::T_BYTE))) {
1834     goto _loop;
1835   }
1836 _readField_tiny:
1837   {
1838     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::readWithContext(*iprot, this->tiny, _readState);
1839 
1840   }
1841 
1842   if (UNLIKELY(!_readState.advanceToNextField(
1843           iprot,
1844           5,
1845           0,
1846           apache::thrift::protocol::T_STOP))) {
1847     goto _loop;
1848   }
1849 
1850 _end:
1851   _readState.readStructEnd(iprot);
1852 
1853   return;
1854 
1855 _loop:
1856   _readState.afterAdvanceFailure(iprot);
1857   if (_readState.atStop()) {
1858     goto _end;
1859   }
1860   if (iprot->kUsesFieldNames()) {
1861     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<MinPadding>>();
1862   }
1863 
1864   switch (_readState.fieldId) {
1865     case 1:
1866     {
1867       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_BYTE))) {
1868         goto _readField_small;
1869       } else {
1870         goto _skip;
1871       }
1872     }
1873     case 2:
1874     {
1875       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
1876         goto _readField_big;
1877       } else {
1878         goto _skip;
1879       }
1880     }
1881     case 3:
1882     {
1883       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I16))) {
1884         goto _readField_medium;
1885       } else {
1886         goto _skip;
1887       }
1888     }
1889     case 4:
1890     {
1891       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
1892         goto _readField_biggish;
1893       } else {
1894         goto _skip;
1895       }
1896     }
1897     case 5:
1898     {
1899       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_BYTE))) {
1900         goto _readField_tiny;
1901       } else {
1902         goto _skip;
1903       }
1904     }
1905     default:
1906     {
1907 _skip:
1908       _readState.skip(iprot);
1909       _readState.readFieldEnd(iprot);
1910       _readState.readFieldBeginNoInline(iprot);
1911       goto _loop;
1912     }
1913   }
1914 }
1915 
1916 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1917 uint32_t MinPadding::serializedSize(Protocol_ const* prot_) const {
1918   uint32_t xfer = 0;
1919   xfer += prot_->serializedStructSize("MinPadding");
1920   {
1921     xfer += prot_->serializedFieldSize("small", apache::thrift::protocol::T_BYTE, 1);
1922     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::serializedSize<false>(*prot_, this->small);
1923   }
1924   {
1925     xfer += prot_->serializedFieldSize("big", apache::thrift::protocol::T_I64, 2);
1926     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->big);
1927   }
1928   {
1929     xfer += prot_->serializedFieldSize("medium", apache::thrift::protocol::T_I16, 3);
1930     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->medium);
1931   }
1932   {
1933     xfer += prot_->serializedFieldSize("biggish", apache::thrift::protocol::T_I32, 4);
1934     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->biggish);
1935   }
1936   {
1937     xfer += prot_->serializedFieldSize("tiny", apache::thrift::protocol::T_BYTE, 5);
1938     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::serializedSize<false>(*prot_, this->tiny);
1939   }
1940   xfer += prot_->serializedSizeStop();
1941   return xfer;
1942 }
1943 
1944 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1945 uint32_t MinPadding::serializedSizeZC(Protocol_ const* prot_) const {
1946   uint32_t xfer = 0;
1947   xfer += prot_->serializedStructSize("MinPadding");
1948   {
1949     xfer += prot_->serializedFieldSize("small", apache::thrift::protocol::T_BYTE, 1);
1950     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::serializedSize<false>(*prot_, this->small);
1951   }
1952   {
1953     xfer += prot_->serializedFieldSize("big", apache::thrift::protocol::T_I64, 2);
1954     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->big);
1955   }
1956   {
1957     xfer += prot_->serializedFieldSize("medium", apache::thrift::protocol::T_I16, 3);
1958     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->medium);
1959   }
1960   {
1961     xfer += prot_->serializedFieldSize("biggish", apache::thrift::protocol::T_I32, 4);
1962     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->biggish);
1963   }
1964   {
1965     xfer += prot_->serializedFieldSize("tiny", apache::thrift::protocol::T_BYTE, 5);
1966     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::serializedSize<false>(*prot_, this->tiny);
1967   }
1968   xfer += prot_->serializedSizeStop();
1969   return xfer;
1970 }
1971 
1972 template <class Protocol_>
write(Protocol_ * prot_) const1973 uint32_t MinPadding::write(Protocol_* prot_) const {
1974   uint32_t xfer = 0;
1975   xfer += prot_->writeStructBegin("MinPadding");
1976   bool previousFieldHasValue = true;
1977   {
1978     constexpr int16_t kPrevFieldId = 0;
1979     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_BYTE, 1, kPrevFieldId>(*prot_, "small", previousFieldHasValue);
1980     previousFieldHasValue = true;
1981     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::write(*prot_, this->small);
1982     xfer += prot_->writeFieldEnd();
1983   }
1984   {
1985     constexpr int16_t kPrevFieldId = 1;
1986     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 2, kPrevFieldId>(*prot_, "big", previousFieldHasValue);
1987     previousFieldHasValue = true;
1988     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->big);
1989     xfer += prot_->writeFieldEnd();
1990   }
1991   {
1992     constexpr int16_t kPrevFieldId = 2;
1993     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I16, 3, kPrevFieldId>(*prot_, "medium", previousFieldHasValue);
1994     previousFieldHasValue = true;
1995     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::write(*prot_, this->medium);
1996     xfer += prot_->writeFieldEnd();
1997   }
1998   {
1999     constexpr int16_t kPrevFieldId = 3;
2000     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 4, kPrevFieldId>(*prot_, "biggish", previousFieldHasValue);
2001     previousFieldHasValue = true;
2002     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->biggish);
2003     xfer += prot_->writeFieldEnd();
2004   }
2005   {
2006     constexpr int16_t kPrevFieldId = 4;
2007     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_BYTE, 5, kPrevFieldId>(*prot_, "tiny", previousFieldHasValue);
2008     previousFieldHasValue = true;
2009     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::write(*prot_, this->tiny);
2010     xfer += prot_->writeFieldEnd();
2011   }
2012   xfer += prot_->writeFieldStop();
2013   xfer += prot_->writeStructEnd();
2014   return xfer;
2015 }
2016 
2017 extern template void MinPadding::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2018 extern template uint32_t MinPadding::write<>(apache::thrift::BinaryProtocolWriter*) const;
2019 extern template uint32_t MinPadding::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2020 extern template uint32_t MinPadding::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2021 extern template void MinPadding::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2022 extern template uint32_t MinPadding::write<>(apache::thrift::CompactProtocolWriter*) const;
2023 extern template uint32_t MinPadding::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2024 extern template uint32_t MinPadding::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2025 
2026 }}}} // apache::thrift::fixtures::types
2027 namespace apache { namespace thrift { namespace fixtures { namespace types {
2028 
2029 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2030 void MyDataItem::readNoXfer(Protocol_* iprot) {
2031   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2032 
2033   _readState.readStructBegin(iprot);
2034 
2035   using apache::thrift::TProtocolException;
2036 
2037 
2038   if (UNLIKELY(!_readState.advanceToNextField(
2039           iprot,
2040           0,
2041           0,
2042           apache::thrift::protocol::T_STOP))) {
2043     goto _loop;
2044   }
2045 
2046 _end:
2047   _readState.readStructEnd(iprot);
2048 
2049   return;
2050 
2051 _loop:
2052   _readState.afterAdvanceFailure(iprot);
2053   if (_readState.atStop()) {
2054     goto _end;
2055   }
2056   if (iprot->kUsesFieldNames()) {
2057     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<MyDataItem>>();
2058   }
2059 
2060   switch (_readState.fieldId) {
2061     default:
2062     {
2063       _readState.skip(iprot);
2064       _readState.readFieldEnd(iprot);
2065       _readState.readFieldBeginNoInline(iprot);
2066       goto _loop;
2067     }
2068   }
2069 }
2070 
2071 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2072 uint32_t MyDataItem::serializedSize(Protocol_ const* prot_) const {
2073   uint32_t xfer = 0;
2074   xfer += prot_->serializedStructSize("MyDataItem");
2075   xfer += prot_->serializedSizeStop();
2076   return xfer;
2077 }
2078 
2079 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2080 uint32_t MyDataItem::serializedSizeZC(Protocol_ const* prot_) const {
2081   uint32_t xfer = 0;
2082   xfer += prot_->serializedStructSize("MyDataItem");
2083   xfer += prot_->serializedSizeStop();
2084   return xfer;
2085 }
2086 
2087 template <class Protocol_>
write(Protocol_ * prot_) const2088 uint32_t MyDataItem::write(Protocol_* prot_) const {
2089   uint32_t xfer = 0;
2090   xfer += prot_->writeStructBegin("MyDataItem");
2091   xfer += prot_->writeFieldStop();
2092   xfer += prot_->writeStructEnd();
2093   return xfer;
2094 }
2095 
2096 extern template void MyDataItem::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2097 extern template uint32_t MyDataItem::write<>(apache::thrift::BinaryProtocolWriter*) const;
2098 extern template uint32_t MyDataItem::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2099 extern template uint32_t MyDataItem::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2100 extern template void MyDataItem::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2101 extern template uint32_t MyDataItem::write<>(apache::thrift::CompactProtocolWriter*) const;
2102 extern template uint32_t MyDataItem::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2103 extern template uint32_t MyDataItem::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2104 
2105 }}}} // apache::thrift::fixtures::types
2106 namespace apache { namespace thrift { namespace fixtures { namespace types {
2107 
2108 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2109 void MyStruct::readNoXfer(Protocol_* iprot) {
2110   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2111 
2112   _readState.readStructBegin(iprot);
2113 
2114   using apache::thrift::TProtocolException;
2115 
2116 
2117   if (UNLIKELY(!_readState.advanceToNextField(
2118           iprot,
2119           0,
2120           1,
2121           apache::thrift::protocol::T_I64))) {
2122     goto _loop;
2123   }
2124 _readField_MyIntField:
2125   {
2126     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_MyIntField, _readState);
2127 
2128   }
2129  this->__isset.set(0, true);
2130 
2131   if (UNLIKELY(!_readState.advanceToNextField(
2132           iprot,
2133           1,
2134           2,
2135           apache::thrift::protocol::T_STRING))) {
2136     goto _loop;
2137   }
2138 _readField_MyStringField:
2139   {
2140     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_MyStringField, _readState);
2141 
2142   }
2143  this->__isset.set(1, true);
2144 
2145   if (UNLIKELY(!_readState.advanceToNextField(
2146           iprot,
2147           2,
2148           3,
2149           apache::thrift::protocol::T_I64))) {
2150     goto _loop;
2151   }
2152 _readField_majorVer:
2153   {
2154     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_majorVer, _readState);
2155 
2156   }
2157  this->__isset.set(2, true);
2158 
2159   if (UNLIKELY(!_readState.advanceToNextField(
2160           iprot,
2161           3,
2162           4,
2163           apache::thrift::protocol::T_STRUCT))) {
2164     goto _loop;
2165   }
2166 _readField_data:
2167   {
2168     _readState.beforeSubobject(iprot);
2169     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::MyDataItem>::readWithContext(*iprot, this->__fbthrift_field_data, _readState);
2170     _readState.afterSubobject(iprot);
2171 
2172   }
2173  this->__isset.set(3, true);
2174 
2175   if (UNLIKELY(!_readState.advanceToNextField(
2176           iprot,
2177           4,
2178           0,
2179           apache::thrift::protocol::T_STOP))) {
2180     goto _loop;
2181   }
2182 
2183 _end:
2184   _readState.readStructEnd(iprot);
2185 
2186   return;
2187 
2188 _loop:
2189   _readState.afterAdvanceFailure(iprot);
2190   if (_readState.atStop()) {
2191     goto _end;
2192   }
2193   if (iprot->kUsesFieldNames()) {
2194     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<MyStruct>>();
2195   }
2196 
2197   switch (_readState.fieldId) {
2198     case 1:
2199     {
2200       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
2201         goto _readField_MyIntField;
2202       } else {
2203         goto _skip;
2204       }
2205     }
2206     case 2:
2207     {
2208       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
2209         goto _readField_MyStringField;
2210       } else {
2211         goto _skip;
2212       }
2213     }
2214     case 3:
2215     {
2216       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
2217         goto _readField_majorVer;
2218       } else {
2219         goto _skip;
2220       }
2221     }
2222     case 4:
2223     {
2224       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
2225         goto _readField_data;
2226       } else {
2227         goto _skip;
2228       }
2229     }
2230     default:
2231     {
2232 _skip:
2233       _readState.skip(iprot);
2234       _readState.readFieldEnd(iprot);
2235       _readState.readFieldBeginNoInline(iprot);
2236       goto _loop;
2237     }
2238   }
2239 }
2240 
2241 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2242 uint32_t MyStruct::serializedSize(Protocol_ const* prot_) const {
2243   uint32_t xfer = 0;
2244   xfer += prot_->serializedStructSize("MyStruct");
2245   {
2246     xfer += prot_->serializedFieldSize("MyIntField", apache::thrift::protocol::T_I64, 1);
2247     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_MyIntField);
2248   }
2249   {
2250     xfer += prot_->serializedFieldSize("MyStringField", apache::thrift::protocol::T_STRING, 2);
2251     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyStringField);
2252   }
2253   {
2254     xfer += prot_->serializedFieldSize("majorVer", apache::thrift::protocol::T_I64, 3);
2255     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_majorVer);
2256   }
2257   {
2258     xfer += prot_->serializedFieldSize("data", apache::thrift::protocol::T_STRUCT, 4);
2259     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::MyDataItem>::serializedSize<false>(*prot_, this->__fbthrift_field_data);
2260   }
2261   xfer += prot_->serializedSizeStop();
2262   return xfer;
2263 }
2264 
2265 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2266 uint32_t MyStruct::serializedSizeZC(Protocol_ const* prot_) const {
2267   uint32_t xfer = 0;
2268   xfer += prot_->serializedStructSize("MyStruct");
2269   {
2270     xfer += prot_->serializedFieldSize("MyIntField", apache::thrift::protocol::T_I64, 1);
2271     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_MyIntField);
2272   }
2273   {
2274     xfer += prot_->serializedFieldSize("MyStringField", apache::thrift::protocol::T_STRING, 2);
2275     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyStringField);
2276   }
2277   {
2278     xfer += prot_->serializedFieldSize("majorVer", apache::thrift::protocol::T_I64, 3);
2279     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_majorVer);
2280   }
2281   {
2282     xfer += prot_->serializedFieldSize("data", apache::thrift::protocol::T_STRUCT, 4);
2283     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::MyDataItem>::serializedSize<true>(*prot_, this->__fbthrift_field_data);
2284   }
2285   xfer += prot_->serializedSizeStop();
2286   return xfer;
2287 }
2288 
2289 template <class Protocol_>
write(Protocol_ * prot_) const2290 uint32_t MyStruct::write(Protocol_* prot_) const {
2291   uint32_t xfer = 0;
2292   xfer += prot_->writeStructBegin("MyStruct");
2293   bool previousFieldHasValue = true;
2294   {
2295     constexpr int16_t kPrevFieldId = 0;
2296     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 1, kPrevFieldId>(*prot_, "MyIntField", previousFieldHasValue);
2297     previousFieldHasValue = true;
2298     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_MyIntField);
2299     xfer += prot_->writeFieldEnd();
2300   }
2301   {
2302     constexpr int16_t kPrevFieldId = 1;
2303     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 2, kPrevFieldId>(*prot_, "MyStringField", previousFieldHasValue);
2304     previousFieldHasValue = true;
2305     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_MyStringField);
2306     xfer += prot_->writeFieldEnd();
2307   }
2308   {
2309     constexpr int16_t kPrevFieldId = 2;
2310     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 3, kPrevFieldId>(*prot_, "majorVer", previousFieldHasValue);
2311     previousFieldHasValue = true;
2312     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_majorVer);
2313     xfer += prot_->writeFieldEnd();
2314   }
2315   {
2316     constexpr int16_t kPrevFieldId = 3;
2317     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 4, kPrevFieldId>(*prot_, "data", previousFieldHasValue);
2318     previousFieldHasValue = true;
2319     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::MyDataItem>::write(*prot_, this->__fbthrift_field_data);
2320     xfer += prot_->writeFieldEnd();
2321   }
2322   xfer += prot_->writeFieldStop();
2323   xfer += prot_->writeStructEnd();
2324   return xfer;
2325 }
2326 
2327 extern template void MyStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2328 extern template uint32_t MyStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
2329 extern template uint32_t MyStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2330 extern template uint32_t MyStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2331 extern template void MyStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2332 extern template uint32_t MyStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
2333 extern template uint32_t MyStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2334 extern template uint32_t MyStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2335 
2336 }}}} // apache::thrift::fixtures::types
2337 namespace apache { namespace thrift { namespace fixtures { namespace types {
2338 
2339 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2340 void Renaming::readNoXfer(Protocol_* iprot) {
2341   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2342 
2343   _readState.readStructBegin(iprot);
2344 
2345   using apache::thrift::TProtocolException;
2346 
2347 
2348   if (UNLIKELY(!_readState.advanceToNextField(
2349           iprot,
2350           0,
2351           1,
2352           apache::thrift::protocol::T_I64))) {
2353     goto _loop;
2354   }
2355 _readField_bar:
2356   {
2357     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_bar, _readState);
2358 
2359   }
2360  this->__isset.set(0, true);
2361 
2362   if (UNLIKELY(!_readState.advanceToNextField(
2363           iprot,
2364           1,
2365           0,
2366           apache::thrift::protocol::T_STOP))) {
2367     goto _loop;
2368   }
2369 
2370 _end:
2371   _readState.readStructEnd(iprot);
2372 
2373   return;
2374 
2375 _loop:
2376   _readState.afterAdvanceFailure(iprot);
2377   if (_readState.atStop()) {
2378     goto _end;
2379   }
2380   if (iprot->kUsesFieldNames()) {
2381     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Renaming>>();
2382   }
2383 
2384   switch (_readState.fieldId) {
2385     case 1:
2386     {
2387       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
2388         goto _readField_bar;
2389       } else {
2390         goto _skip;
2391       }
2392     }
2393     default:
2394     {
2395 _skip:
2396       _readState.skip(iprot);
2397       _readState.readFieldEnd(iprot);
2398       _readState.readFieldBeginNoInline(iprot);
2399       goto _loop;
2400     }
2401   }
2402 }
2403 
2404 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2405 uint32_t Renaming::serializedSize(Protocol_ const* prot_) const {
2406   uint32_t xfer = 0;
2407   xfer += prot_->serializedStructSize("Renaming");
2408   {
2409     xfer += prot_->serializedFieldSize("foo", apache::thrift::protocol::T_I64, 1);
2410     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_bar);
2411   }
2412   xfer += prot_->serializedSizeStop();
2413   return xfer;
2414 }
2415 
2416 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2417 uint32_t Renaming::serializedSizeZC(Protocol_ const* prot_) const {
2418   uint32_t xfer = 0;
2419   xfer += prot_->serializedStructSize("Renaming");
2420   {
2421     xfer += prot_->serializedFieldSize("foo", apache::thrift::protocol::T_I64, 1);
2422     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_bar);
2423   }
2424   xfer += prot_->serializedSizeStop();
2425   return xfer;
2426 }
2427 
2428 template <class Protocol_>
write(Protocol_ * prot_) const2429 uint32_t Renaming::write(Protocol_* prot_) const {
2430   uint32_t xfer = 0;
2431   xfer += prot_->writeStructBegin("Renaming");
2432   bool previousFieldHasValue = true;
2433   {
2434     constexpr int16_t kPrevFieldId = 0;
2435     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 1, kPrevFieldId>(*prot_, "foo", previousFieldHasValue);
2436     previousFieldHasValue = true;
2437     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_bar);
2438     xfer += prot_->writeFieldEnd();
2439   }
2440   xfer += prot_->writeFieldStop();
2441   xfer += prot_->writeStructEnd();
2442   return xfer;
2443 }
2444 
2445 extern template void Renaming::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2446 extern template uint32_t Renaming::write<>(apache::thrift::BinaryProtocolWriter*) const;
2447 extern template uint32_t Renaming::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2448 extern template uint32_t Renaming::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2449 extern template void Renaming::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2450 extern template uint32_t Renaming::write<>(apache::thrift::CompactProtocolWriter*) const;
2451 extern template uint32_t Renaming::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2452 extern template uint32_t Renaming::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2453 
2454 }}}} // apache::thrift::fixtures::types
2455 namespace apache { namespace thrift { namespace fixtures { namespace types {
2456 
2457 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2458 void AnnotatedTypes::readNoXfer(Protocol_* iprot) {
2459   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2460 
2461   _readState.readStructBegin(iprot);
2462 
2463   using apache::thrift::TProtocolException;
2464 
2465 
2466   if (UNLIKELY(!_readState.advanceToNextField(
2467           iprot,
2468           0,
2469           1,
2470           apache::thrift::protocol::T_STRING))) {
2471     goto _loop;
2472   }
2473 _readField_binary_field:
2474   {
2475     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::fixtures::types::TBinary>::readWithContext(*iprot, this->__fbthrift_field_binary_field, _readState);
2476 
2477   }
2478  this->__isset.set(0, true);
2479 
2480   if (UNLIKELY(!_readState.advanceToNextField(
2481           iprot,
2482           1,
2483           2,
2484           apache::thrift::protocol::T_LIST))) {
2485     goto _loop;
2486   }
2487 _readField_list_field:
2488   {
2489     _readState.beforeSubobject(iprot);
2490     this->__fbthrift_field_list_field = ::apache::thrift::fixtures::types::SomeListOfTypeMap();
2491     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>>, ::apache::thrift::fixtures::types::SomeListOfTypeMap>::readWithContext(*iprot, this->__fbthrift_field_list_field, _readState);
2492     _readState.afterSubobject(iprot);
2493 
2494   }
2495  this->__isset.set(1, true);
2496 
2497   if (UNLIKELY(!_readState.advanceToNextField(
2498           iprot,
2499           2,
2500           0,
2501           apache::thrift::protocol::T_STOP))) {
2502     goto _loop;
2503   }
2504 
2505 _end:
2506   _readState.readStructEnd(iprot);
2507 
2508   return;
2509 
2510 _loop:
2511   _readState.afterAdvanceFailure(iprot);
2512   if (_readState.atStop()) {
2513     goto _end;
2514   }
2515   if (iprot->kUsesFieldNames()) {
2516     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<AnnotatedTypes>>();
2517   }
2518 
2519   switch (_readState.fieldId) {
2520     case 1:
2521     {
2522       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
2523         goto _readField_binary_field;
2524       } else {
2525         goto _skip;
2526       }
2527     }
2528     case 2:
2529     {
2530       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
2531         goto _readField_list_field;
2532       } else {
2533         goto _skip;
2534       }
2535     }
2536     default:
2537     {
2538 _skip:
2539       _readState.skip(iprot);
2540       _readState.readFieldEnd(iprot);
2541       _readState.readFieldBeginNoInline(iprot);
2542       goto _loop;
2543     }
2544   }
2545 }
2546 
2547 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2548 uint32_t AnnotatedTypes::serializedSize(Protocol_ const* prot_) const {
2549   uint32_t xfer = 0;
2550   xfer += prot_->serializedStructSize("AnnotatedTypes");
2551   {
2552     xfer += prot_->serializedFieldSize("binary_field", apache::thrift::protocol::T_STRING, 1);
2553     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::fixtures::types::TBinary>::serializedSize<false>(*prot_, this->__fbthrift_field_binary_field);
2554   }
2555   {
2556     xfer += prot_->serializedFieldSize("list_field", apache::thrift::protocol::T_LIST, 2);
2557     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>>, ::apache::thrift::fixtures::types::SomeListOfTypeMap>::serializedSize<false>(*prot_, this->__fbthrift_field_list_field);
2558   }
2559   xfer += prot_->serializedSizeStop();
2560   return xfer;
2561 }
2562 
2563 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2564 uint32_t AnnotatedTypes::serializedSizeZC(Protocol_ const* prot_) const {
2565   uint32_t xfer = 0;
2566   xfer += prot_->serializedStructSize("AnnotatedTypes");
2567   {
2568     xfer += prot_->serializedFieldSize("binary_field", apache::thrift::protocol::T_STRING, 1);
2569     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::fixtures::types::TBinary>::serializedSize<true>(*prot_, this->__fbthrift_field_binary_field);
2570   }
2571   {
2572     xfer += prot_->serializedFieldSize("list_field", apache::thrift::protocol::T_LIST, 2);
2573     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>>, ::apache::thrift::fixtures::types::SomeListOfTypeMap>::serializedSize<false>(*prot_, this->__fbthrift_field_list_field);
2574   }
2575   xfer += prot_->serializedSizeStop();
2576   return xfer;
2577 }
2578 
2579 template <class Protocol_>
write(Protocol_ * prot_) const2580 uint32_t AnnotatedTypes::write(Protocol_* prot_) const {
2581   uint32_t xfer = 0;
2582   xfer += prot_->writeStructBegin("AnnotatedTypes");
2583   bool previousFieldHasValue = true;
2584   {
2585     constexpr int16_t kPrevFieldId = 0;
2586     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "binary_field", previousFieldHasValue);
2587     previousFieldHasValue = true;
2588     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::fixtures::types::TBinary>::write(*prot_, this->__fbthrift_field_binary_field);
2589     xfer += prot_->writeFieldEnd();
2590   }
2591   {
2592     constexpr int16_t kPrevFieldId = 1;
2593     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 2, kPrevFieldId>(*prot_, "list_field", previousFieldHasValue);
2594     previousFieldHasValue = true;
2595     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>>, ::apache::thrift::fixtures::types::SomeListOfTypeMap>::write(*prot_, this->__fbthrift_field_list_field);
2596     xfer += prot_->writeFieldEnd();
2597   }
2598   xfer += prot_->writeFieldStop();
2599   xfer += prot_->writeStructEnd();
2600   return xfer;
2601 }
2602 
2603 extern template void AnnotatedTypes::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2604 extern template uint32_t AnnotatedTypes::write<>(apache::thrift::BinaryProtocolWriter*) const;
2605 extern template uint32_t AnnotatedTypes::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2606 extern template uint32_t AnnotatedTypes::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2607 extern template void AnnotatedTypes::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2608 extern template uint32_t AnnotatedTypes::write<>(apache::thrift::CompactProtocolWriter*) const;
2609 extern template uint32_t AnnotatedTypes::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2610 extern template uint32_t AnnotatedTypes::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2611 
2612 }}}} // apache::thrift::fixtures::types
2613 namespace apache { namespace thrift { namespace fixtures { namespace types {
2614 
2615 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2616 void ForwardUsageStruct::readNoXfer(Protocol_* iprot) {
2617   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2618 
2619   _readState.readStructBegin(iprot);
2620 
2621   using apache::thrift::TProtocolException;
2622 
2623 
2624   if (UNLIKELY(!_readState.advanceToNextField(
2625           iprot,
2626           0,
2627           1,
2628           apache::thrift::protocol::T_STRUCT))) {
2629     goto _loop;
2630   }
2631 _readField_foo:
2632   {
2633     _readState.beforeSubobject(iprot);
2634     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::readWithContext(*iprot, this->__fbthrift_field_foo, _readState);
2635     _readState.afterSubobject(iprot);
2636 
2637   }
2638  this->__isset.set(0, true);
2639 
2640   if (UNLIKELY(!_readState.advanceToNextField(
2641           iprot,
2642           1,
2643           0,
2644           apache::thrift::protocol::T_STOP))) {
2645     goto _loop;
2646   }
2647 
2648 _end:
2649   _readState.readStructEnd(iprot);
2650 
2651   return;
2652 
2653 _loop:
2654   _readState.afterAdvanceFailure(iprot);
2655   if (_readState.atStop()) {
2656     goto _end;
2657   }
2658   if (iprot->kUsesFieldNames()) {
2659     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ForwardUsageStruct>>();
2660   }
2661 
2662   switch (_readState.fieldId) {
2663     case 1:
2664     {
2665       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
2666         goto _readField_foo;
2667       } else {
2668         goto _skip;
2669       }
2670     }
2671     default:
2672     {
2673 _skip:
2674       _readState.skip(iprot);
2675       _readState.readFieldEnd(iprot);
2676       _readState.readFieldBeginNoInline(iprot);
2677       goto _loop;
2678     }
2679   }
2680 }
2681 
2682 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2683 uint32_t ForwardUsageStruct::serializedSize(Protocol_ const* prot_) const {
2684   uint32_t xfer = 0;
2685   xfer += prot_->serializedStructSize("ForwardUsageStruct");
2686   if (this->__isset.get(0)) {
2687     xfer += prot_->serializedFieldSize("foo", apache::thrift::protocol::T_STRUCT, 1);
2688     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::serializedSize<false>(*prot_, this->__fbthrift_field_foo);
2689   }
2690   xfer += prot_->serializedSizeStop();
2691   return xfer;
2692 }
2693 
2694 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2695 uint32_t ForwardUsageStruct::serializedSizeZC(Protocol_ const* prot_) const {
2696   uint32_t xfer = 0;
2697   xfer += prot_->serializedStructSize("ForwardUsageStruct");
2698   if (this->__isset.get(0)) {
2699     xfer += prot_->serializedFieldSize("foo", apache::thrift::protocol::T_STRUCT, 1);
2700     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::serializedSize<true>(*prot_, this->__fbthrift_field_foo);
2701   }
2702   xfer += prot_->serializedSizeStop();
2703   return xfer;
2704 }
2705 
2706 template <class Protocol_>
write(Protocol_ * prot_) const2707 uint32_t ForwardUsageStruct::write(Protocol_* prot_) const {
2708   uint32_t xfer = 0;
2709   xfer += prot_->writeStructBegin("ForwardUsageStruct");
2710   bool previousFieldHasValue = true;
2711   if (this->__isset.get(0)) {
2712     constexpr int16_t kPrevFieldId = 0;
2713     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "foo", previousFieldHasValue);
2714     previousFieldHasValue = true;
2715     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::write(*prot_, this->__fbthrift_field_foo);
2716     xfer += prot_->writeFieldEnd();
2717   } else {
2718     previousFieldHasValue = false;
2719   }
2720   xfer += prot_->writeFieldStop();
2721   xfer += prot_->writeStructEnd();
2722   return xfer;
2723 }
2724 
2725 extern template void ForwardUsageStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2726 extern template uint32_t ForwardUsageStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
2727 extern template uint32_t ForwardUsageStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2728 extern template uint32_t ForwardUsageStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2729 extern template void ForwardUsageStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2730 extern template uint32_t ForwardUsageStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
2731 extern template uint32_t ForwardUsageStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2732 extern template uint32_t ForwardUsageStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2733 
2734 }}}} // apache::thrift::fixtures::types
2735 namespace apache { namespace thrift { namespace fixtures { namespace types {
2736 
2737 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2738 void ForwardUsageRoot::readNoXfer(Protocol_* iprot) {
2739   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2740 
2741   _readState.readStructBegin(iprot);
2742 
2743   using apache::thrift::TProtocolException;
2744 
2745 
2746   if (UNLIKELY(!_readState.advanceToNextField(
2747           iprot,
2748           0,
2749           1,
2750           apache::thrift::protocol::T_STRUCT))) {
2751     goto _loop;
2752   }
2753 _readField_ForwardUsageStruct:
2754   {
2755     _readState.beforeSubobject(iprot);
2756     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageStruct>::readWithContext(*iprot, this->__fbthrift_field_ForwardUsageStruct, _readState);
2757     _readState.afterSubobject(iprot);
2758 
2759   }
2760  this->__isset.set(0, true);
2761 
2762   if (UNLIKELY(!_readState.advanceToNextField(
2763           iprot,
2764           1,
2765           2,
2766           apache::thrift::protocol::T_STRUCT))) {
2767     goto _loop;
2768   }
2769 _readField_ForwardUsageByRef:
2770   {
2771     _readState.beforeSubobject(iprot);
2772     auto ptr = ::apache::thrift::detail::make_mutable_smart_ptr<::std::unique_ptr<::apache::thrift::fixtures::types::ForwardUsageByRef>>();
2773     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageByRef>::readWithContext(*iprot, *ptr, _readState);
2774     this->ForwardUsageByRef = std::move(ptr);
2775     _readState.afterSubobject(iprot);
2776 
2777   }
2778 
2779   if (UNLIKELY(!_readState.advanceToNextField(
2780           iprot,
2781           2,
2782           0,
2783           apache::thrift::protocol::T_STOP))) {
2784     goto _loop;
2785   }
2786 
2787 _end:
2788   _readState.readStructEnd(iprot);
2789 
2790   return;
2791 
2792 _loop:
2793   _readState.afterAdvanceFailure(iprot);
2794   if (_readState.atStop()) {
2795     goto _end;
2796   }
2797   if (iprot->kUsesFieldNames()) {
2798     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ForwardUsageRoot>>();
2799   }
2800 
2801   switch (_readState.fieldId) {
2802     case 1:
2803     {
2804       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
2805         goto _readField_ForwardUsageStruct;
2806       } else {
2807         goto _skip;
2808       }
2809     }
2810     case 2:
2811     {
2812       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
2813         goto _readField_ForwardUsageByRef;
2814       } else {
2815         goto _skip;
2816       }
2817     }
2818     default:
2819     {
2820 _skip:
2821       _readState.skip(iprot);
2822       _readState.readFieldEnd(iprot);
2823       _readState.readFieldBeginNoInline(iprot);
2824       goto _loop;
2825     }
2826   }
2827 }
2828 
2829 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2830 uint32_t ForwardUsageRoot::serializedSize(Protocol_ const* prot_) const {
2831   uint32_t xfer = 0;
2832   xfer += prot_->serializedStructSize("ForwardUsageRoot");
2833   if (this->__isset.get(0)) {
2834     xfer += prot_->serializedFieldSize("ForwardUsageStruct", apache::thrift::protocol::T_STRUCT, 1);
2835     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageStruct>::serializedSize<false>(*prot_, this->__fbthrift_field_ForwardUsageStruct);
2836   }
2837   if (this->ForwardUsageByRef) {
2838     xfer += prot_->serializedFieldSize("ForwardUsageByRef", apache::thrift::protocol::T_STRUCT, 2);
2839     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageByRef>::serializedSize<false>(*prot_, *this->ForwardUsageByRef);
2840   }
2841   xfer += prot_->serializedSizeStop();
2842   return xfer;
2843 }
2844 
2845 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2846 uint32_t ForwardUsageRoot::serializedSizeZC(Protocol_ const* prot_) const {
2847   uint32_t xfer = 0;
2848   xfer += prot_->serializedStructSize("ForwardUsageRoot");
2849   if (this->__isset.get(0)) {
2850     xfer += prot_->serializedFieldSize("ForwardUsageStruct", apache::thrift::protocol::T_STRUCT, 1);
2851     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageStruct>::serializedSize<true>(*prot_, this->__fbthrift_field_ForwardUsageStruct);
2852   }
2853   if (this->ForwardUsageByRef) {
2854     xfer += prot_->serializedFieldSize("ForwardUsageByRef", apache::thrift::protocol::T_STRUCT, 2);
2855     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageByRef>::serializedSize<true>(*prot_, *this->ForwardUsageByRef);
2856   }
2857   xfer += prot_->serializedSizeStop();
2858   return xfer;
2859 }
2860 
2861 template <class Protocol_>
write(Protocol_ * prot_) const2862 uint32_t ForwardUsageRoot::write(Protocol_* prot_) const {
2863   uint32_t xfer = 0;
2864   xfer += prot_->writeStructBegin("ForwardUsageRoot");
2865   bool previousFieldHasValue = true;
2866   if (this->__isset.get(0)) {
2867     constexpr int16_t kPrevFieldId = 0;
2868     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "ForwardUsageStruct", previousFieldHasValue);
2869     previousFieldHasValue = true;
2870     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageStruct>::write(*prot_, this->__fbthrift_field_ForwardUsageStruct);
2871     xfer += prot_->writeFieldEnd();
2872   } else {
2873     previousFieldHasValue = false;
2874   }
2875   if (this->ForwardUsageByRef) {
2876     constexpr int16_t kPrevFieldId = 1;
2877     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "ForwardUsageByRef", previousFieldHasValue);
2878     previousFieldHasValue = true;
2879     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageByRef>::write(*prot_, *this->ForwardUsageByRef);
2880     xfer += prot_->writeFieldEnd();
2881   } else {
2882     previousFieldHasValue = false;
2883   }
2884   xfer += prot_->writeFieldStop();
2885   xfer += prot_->writeStructEnd();
2886   return xfer;
2887 }
2888 
2889 extern template void ForwardUsageRoot::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
2890 extern template uint32_t ForwardUsageRoot::write<>(apache::thrift::BinaryProtocolWriter*) const;
2891 extern template uint32_t ForwardUsageRoot::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
2892 extern template uint32_t ForwardUsageRoot::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
2893 extern template void ForwardUsageRoot::readNoXfer<>(apache::thrift::CompactProtocolReader*);
2894 extern template uint32_t ForwardUsageRoot::write<>(apache::thrift::CompactProtocolWriter*) const;
2895 extern template uint32_t ForwardUsageRoot::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
2896 extern template uint32_t ForwardUsageRoot::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
2897 
2898 }}}} // apache::thrift::fixtures::types
2899 namespace apache { namespace thrift { namespace fixtures { namespace types {
2900 
2901 template <class Protocol_>
readNoXfer(Protocol_ * iprot)2902 void ForwardUsageByRef::readNoXfer(Protocol_* iprot) {
2903   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
2904 
2905   _readState.readStructBegin(iprot);
2906 
2907   using apache::thrift::TProtocolException;
2908 
2909 
2910   if (UNLIKELY(!_readState.advanceToNextField(
2911           iprot,
2912           0,
2913           1,
2914           apache::thrift::protocol::T_STRUCT))) {
2915     goto _loop;
2916   }
2917 _readField_foo:
2918   {
2919     _readState.beforeSubobject(iprot);
2920     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::readWithContext(*iprot, this->__fbthrift_field_foo, _readState);
2921     _readState.afterSubobject(iprot);
2922 
2923   }
2924  this->__isset.set(0, true);
2925 
2926   if (UNLIKELY(!_readState.advanceToNextField(
2927           iprot,
2928           1,
2929           0,
2930           apache::thrift::protocol::T_STOP))) {
2931     goto _loop;
2932   }
2933 
2934 _end:
2935   _readState.readStructEnd(iprot);
2936 
2937   return;
2938 
2939 _loop:
2940   _readState.afterAdvanceFailure(iprot);
2941   if (_readState.atStop()) {
2942     goto _end;
2943   }
2944   if (iprot->kUsesFieldNames()) {
2945     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ForwardUsageByRef>>();
2946   }
2947 
2948   switch (_readState.fieldId) {
2949     case 1:
2950     {
2951       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
2952         goto _readField_foo;
2953       } else {
2954         goto _skip;
2955       }
2956     }
2957     default:
2958     {
2959 _skip:
2960       _readState.skip(iprot);
2961       _readState.readFieldEnd(iprot);
2962       _readState.readFieldBeginNoInline(iprot);
2963       goto _loop;
2964     }
2965   }
2966 }
2967 
2968 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const2969 uint32_t ForwardUsageByRef::serializedSize(Protocol_ const* prot_) const {
2970   uint32_t xfer = 0;
2971   xfer += prot_->serializedStructSize("ForwardUsageByRef");
2972   if (this->__isset.get(0)) {
2973     xfer += prot_->serializedFieldSize("foo", apache::thrift::protocol::T_STRUCT, 1);
2974     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::serializedSize<false>(*prot_, this->__fbthrift_field_foo);
2975   }
2976   xfer += prot_->serializedSizeStop();
2977   return xfer;
2978 }
2979 
2980 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const2981 uint32_t ForwardUsageByRef::serializedSizeZC(Protocol_ const* prot_) const {
2982   uint32_t xfer = 0;
2983   xfer += prot_->serializedStructSize("ForwardUsageByRef");
2984   if (this->__isset.get(0)) {
2985     xfer += prot_->serializedFieldSize("foo", apache::thrift::protocol::T_STRUCT, 1);
2986     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::serializedSize<true>(*prot_, this->__fbthrift_field_foo);
2987   }
2988   xfer += prot_->serializedSizeStop();
2989   return xfer;
2990 }
2991 
2992 template <class Protocol_>
write(Protocol_ * prot_) const2993 uint32_t ForwardUsageByRef::write(Protocol_* prot_) const {
2994   uint32_t xfer = 0;
2995   xfer += prot_->writeStructBegin("ForwardUsageByRef");
2996   bool previousFieldHasValue = true;
2997   if (this->__isset.get(0)) {
2998     constexpr int16_t kPrevFieldId = 0;
2999     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "foo", previousFieldHasValue);
3000     previousFieldHasValue = true;
3001     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::fixtures::types::ForwardUsageRoot>::write(*prot_, this->__fbthrift_field_foo);
3002     xfer += prot_->writeFieldEnd();
3003   } else {
3004     previousFieldHasValue = false;
3005   }
3006   xfer += prot_->writeFieldStop();
3007   xfer += prot_->writeStructEnd();
3008   return xfer;
3009 }
3010 
3011 extern template void ForwardUsageByRef::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
3012 extern template uint32_t ForwardUsageByRef::write<>(apache::thrift::BinaryProtocolWriter*) const;
3013 extern template uint32_t ForwardUsageByRef::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
3014 extern template uint32_t ForwardUsageByRef::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
3015 extern template void ForwardUsageByRef::readNoXfer<>(apache::thrift::CompactProtocolReader*);
3016 extern template uint32_t ForwardUsageByRef::write<>(apache::thrift::CompactProtocolWriter*) const;
3017 extern template uint32_t ForwardUsageByRef::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
3018 extern template uint32_t ForwardUsageByRef::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
3019 
3020 }}}} // apache::thrift::fixtures::types
3021 namespace apache { namespace thrift { namespace fixtures { namespace types {
3022 
3023 template <class Protocol_>
readNoXfer(Protocol_ * iprot)3024 void NoexceptMoveEmpty::readNoXfer(Protocol_* iprot) {
3025   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
3026 
3027   _readState.readStructBegin(iprot);
3028 
3029   using apache::thrift::TProtocolException;
3030 
3031 
3032   if (UNLIKELY(!_readState.advanceToNextField(
3033           iprot,
3034           0,
3035           0,
3036           apache::thrift::protocol::T_STOP))) {
3037     goto _loop;
3038   }
3039 
3040 _end:
3041   _readState.readStructEnd(iprot);
3042 
3043   return;
3044 
3045 _loop:
3046   _readState.afterAdvanceFailure(iprot);
3047   if (_readState.atStop()) {
3048     goto _end;
3049   }
3050   if (iprot->kUsesFieldNames()) {
3051     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<NoexceptMoveEmpty>>();
3052   }
3053 
3054   switch (_readState.fieldId) {
3055     default:
3056     {
3057       _readState.skip(iprot);
3058       _readState.readFieldEnd(iprot);
3059       _readState.readFieldBeginNoInline(iprot);
3060       goto _loop;
3061     }
3062   }
3063 }
3064 
3065 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const3066 uint32_t NoexceptMoveEmpty::serializedSize(Protocol_ const* prot_) const {
3067   uint32_t xfer = 0;
3068   xfer += prot_->serializedStructSize("NoexceptMoveEmpty");
3069   xfer += prot_->serializedSizeStop();
3070   return xfer;
3071 }
3072 
3073 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const3074 uint32_t NoexceptMoveEmpty::serializedSizeZC(Protocol_ const* prot_) const {
3075   uint32_t xfer = 0;
3076   xfer += prot_->serializedStructSize("NoexceptMoveEmpty");
3077   xfer += prot_->serializedSizeStop();
3078   return xfer;
3079 }
3080 
3081 template <class Protocol_>
write(Protocol_ * prot_) const3082 uint32_t NoexceptMoveEmpty::write(Protocol_* prot_) const {
3083   uint32_t xfer = 0;
3084   xfer += prot_->writeStructBegin("NoexceptMoveEmpty");
3085   xfer += prot_->writeFieldStop();
3086   xfer += prot_->writeStructEnd();
3087   return xfer;
3088 }
3089 
3090 extern template void NoexceptMoveEmpty::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
3091 extern template uint32_t NoexceptMoveEmpty::write<>(apache::thrift::BinaryProtocolWriter*) const;
3092 extern template uint32_t NoexceptMoveEmpty::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
3093 extern template uint32_t NoexceptMoveEmpty::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
3094 extern template void NoexceptMoveEmpty::readNoXfer<>(apache::thrift::CompactProtocolReader*);
3095 extern template uint32_t NoexceptMoveEmpty::write<>(apache::thrift::CompactProtocolWriter*) const;
3096 extern template uint32_t NoexceptMoveEmpty::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
3097 extern template uint32_t NoexceptMoveEmpty::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
3098 
3099 }}}} // apache::thrift::fixtures::types
3100 namespace apache { namespace thrift { namespace fixtures { namespace types {
3101 
3102 template <class Protocol_>
readNoXfer(Protocol_ * iprot)3103 void NoexceptMoveSimpleStruct::readNoXfer(Protocol_* iprot) {
3104   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
3105 
3106   _readState.readStructBegin(iprot);
3107 
3108   using apache::thrift::TProtocolException;
3109 
3110 
3111   if (UNLIKELY(!_readState.advanceToNextField(
3112           iprot,
3113           0,
3114           1,
3115           apache::thrift::protocol::T_I64))) {
3116     goto _loop;
3117   }
3118 _readField_boolField:
3119   {
3120     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_boolField, _readState);
3121 
3122   }
3123  this->__isset.set(0, true);
3124 
3125   if (UNLIKELY(!_readState.advanceToNextField(
3126           iprot,
3127           1,
3128           0,
3129           apache::thrift::protocol::T_STOP))) {
3130     goto _loop;
3131   }
3132 
3133 _end:
3134   _readState.readStructEnd(iprot);
3135 
3136   return;
3137 
3138 _loop:
3139   _readState.afterAdvanceFailure(iprot);
3140   if (_readState.atStop()) {
3141     goto _end;
3142   }
3143   if (iprot->kUsesFieldNames()) {
3144     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<NoexceptMoveSimpleStruct>>();
3145   }
3146 
3147   switch (_readState.fieldId) {
3148     case 1:
3149     {
3150       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
3151         goto _readField_boolField;
3152       } else {
3153         goto _skip;
3154       }
3155     }
3156     default:
3157     {
3158 _skip:
3159       _readState.skip(iprot);
3160       _readState.readFieldEnd(iprot);
3161       _readState.readFieldBeginNoInline(iprot);
3162       goto _loop;
3163     }
3164   }
3165 }
3166 
3167 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const3168 uint32_t NoexceptMoveSimpleStruct::serializedSize(Protocol_ const* prot_) const {
3169   uint32_t xfer = 0;
3170   xfer += prot_->serializedStructSize("NoexceptMoveSimpleStruct");
3171   {
3172     xfer += prot_->serializedFieldSize("boolField", apache::thrift::protocol::T_I64, 1);
3173     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_boolField);
3174   }
3175   xfer += prot_->serializedSizeStop();
3176   return xfer;
3177 }
3178 
3179 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const3180 uint32_t NoexceptMoveSimpleStruct::serializedSizeZC(Protocol_ const* prot_) const {
3181   uint32_t xfer = 0;
3182   xfer += prot_->serializedStructSize("NoexceptMoveSimpleStruct");
3183   {
3184     xfer += prot_->serializedFieldSize("boolField", apache::thrift::protocol::T_I64, 1);
3185     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_boolField);
3186   }
3187   xfer += prot_->serializedSizeStop();
3188   return xfer;
3189 }
3190 
3191 template <class Protocol_>
write(Protocol_ * prot_) const3192 uint32_t NoexceptMoveSimpleStruct::write(Protocol_* prot_) const {
3193   uint32_t xfer = 0;
3194   xfer += prot_->writeStructBegin("NoexceptMoveSimpleStruct");
3195   bool previousFieldHasValue = true;
3196   {
3197     constexpr int16_t kPrevFieldId = 0;
3198     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 1, kPrevFieldId>(*prot_, "boolField", previousFieldHasValue);
3199     previousFieldHasValue = true;
3200     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_boolField);
3201     xfer += prot_->writeFieldEnd();
3202   }
3203   xfer += prot_->writeFieldStop();
3204   xfer += prot_->writeStructEnd();
3205   return xfer;
3206 }
3207 
3208 extern template void NoexceptMoveSimpleStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
3209 extern template uint32_t NoexceptMoveSimpleStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
3210 extern template uint32_t NoexceptMoveSimpleStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
3211 extern template uint32_t NoexceptMoveSimpleStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
3212 extern template void NoexceptMoveSimpleStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
3213 extern template uint32_t NoexceptMoveSimpleStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
3214 extern template uint32_t NoexceptMoveSimpleStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
3215 extern template uint32_t NoexceptMoveSimpleStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
3216 
3217 }}}} // apache::thrift::fixtures::types
3218 namespace apache { namespace thrift { namespace fixtures { namespace types {
3219 
3220 template <class Protocol_>
readNoXfer(Protocol_ * iprot)3221 void NoexceptMoveComplexStruct::readNoXfer(Protocol_* iprot) {
3222   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
3223 
3224   _readState.readStructBegin(iprot);
3225 
3226   using apache::thrift::TProtocolException;
3227 
3228 
3229   if (UNLIKELY(!_readState.advanceToNextField(
3230           iprot,
3231           0,
3232           1,
3233           apache::thrift::protocol::T_BOOL))) {
3234     goto _loop;
3235   }
3236 _readField_MyBoolField:
3237   {
3238     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::readWithContext(*iprot, this->__fbthrift_field_MyBoolField, _readState);
3239 
3240   }
3241  this->__isset.set(0, true);
3242 
3243   if (UNLIKELY(!_readState.advanceToNextField(
3244           iprot,
3245           1,
3246           2,
3247           apache::thrift::protocol::T_I64))) {
3248     goto _loop;
3249   }
3250 _readField_MyIntField:
3251   {
3252     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_MyIntField, _readState);
3253 
3254   }
3255  this->__isset.set(1, true);
3256 
3257   if (UNLIKELY(!_readState.advanceToNextField(
3258           iprot,
3259           2,
3260           3,
3261           apache::thrift::protocol::T_STRING))) {
3262     goto _loop;
3263   }
3264 _readField_MyStringField:
3265   {
3266     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_MyStringField, _readState);
3267 
3268   }
3269  this->__isset.set(2, true);
3270 
3271   if (UNLIKELY(!_readState.advanceToNextField(
3272           iprot,
3273           3,
3274           4,
3275           apache::thrift::protocol::T_STRING))) {
3276     goto _loop;
3277   }
3278 _readField_MyStringField2:
3279   {
3280     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_MyStringField2, _readState);
3281 
3282   }
3283  this->__isset.set(3, true);
3284 
3285   if (UNLIKELY(!_readState.advanceToNextField(
3286           iprot,
3287           4,
3288           5,
3289           apache::thrift::protocol::T_STRING))) {
3290     goto _loop;
3291   }
3292 _readField_MyBinaryField:
3293   {
3294     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_MyBinaryField, _readState);
3295 
3296   }
3297  this->__isset.set(4, true);
3298 
3299   if (UNLIKELY(!_readState.advanceToNextField(
3300           iprot,
3301           5,
3302           6,
3303           apache::thrift::protocol::T_STRING))) {
3304     goto _loop;
3305   }
3306 _readField_MyBinaryField2:
3307   {
3308     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_MyBinaryField2, _readState);
3309 
3310   }
3311  this->__isset.set(5, true);
3312 
3313   if (UNLIKELY(!_readState.advanceToNextField(
3314           iprot,
3315           6,
3316           7,
3317           apache::thrift::protocol::T_STRING))) {
3318     goto _loop;
3319   }
3320 _readField_MyBinaryField3:
3321   {
3322     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, this->MyBinaryField3, _readState);
3323 
3324   }
3325 
3326   if (UNLIKELY(!_readState.advanceToNextField(
3327           iprot,
3328           7,
3329           8,
3330           apache::thrift::protocol::T_LIST))) {
3331     goto _loop;
3332   }
3333 _readField_MyBinaryListField4:
3334   {
3335     _readState.beforeSubobject(iprot);
3336     this->__fbthrift_field_MyBinaryListField4 = ::std::vector<::std::string>();
3337     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::binary>, ::std::vector<::std::string>>::readWithContext(*iprot, this->__fbthrift_field_MyBinaryListField4, _readState);
3338     _readState.afterSubobject(iprot);
3339 
3340   }
3341  this->__isset.set(6, true);
3342 
3343   if (UNLIKELY(!_readState.advanceToNextField(
3344           iprot,
3345           8,
3346           9,
3347           apache::thrift::protocol::T_MAP))) {
3348     goto _loop;
3349   }
3350 _readField_MyMapEnumAndInt:
3351   {
3352     _readState.beforeSubobject(iprot);
3353     this->__fbthrift_field_MyMapEnumAndInt = ::std::map<::apache::thrift::fixtures::types::MyEnumA, ::std::string>();
3354     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, ::std::map<::apache::thrift::fixtures::types::MyEnumA, ::std::string>>::readWithContext(*iprot, this->__fbthrift_field_MyMapEnumAndInt, _readState);
3355     _readState.afterSubobject(iprot);
3356 
3357   }
3358  this->__isset.set(7, true);
3359 
3360   if (UNLIKELY(!_readState.advanceToNextField(
3361           iprot,
3362           9,
3363           0,
3364           apache::thrift::protocol::T_STOP))) {
3365     goto _loop;
3366   }
3367 
3368 _end:
3369   _readState.readStructEnd(iprot);
3370 
3371   return;
3372 
3373 _loop:
3374   _readState.afterAdvanceFailure(iprot);
3375   if (_readState.atStop()) {
3376     goto _end;
3377   }
3378   if (iprot->kUsesFieldNames()) {
3379     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<NoexceptMoveComplexStruct>>();
3380   }
3381 
3382   switch (_readState.fieldId) {
3383     case 1:
3384     {
3385       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_BOOL))) {
3386         goto _readField_MyBoolField;
3387       } else {
3388         goto _skip;
3389       }
3390     }
3391     case 2:
3392     {
3393       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
3394         goto _readField_MyIntField;
3395       } else {
3396         goto _skip;
3397       }
3398     }
3399     case 3:
3400     {
3401       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
3402         goto _readField_MyStringField;
3403       } else {
3404         goto _skip;
3405       }
3406     }
3407     case 4:
3408     {
3409       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
3410         goto _readField_MyStringField2;
3411       } else {
3412         goto _skip;
3413       }
3414     }
3415     case 5:
3416     {
3417       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
3418         goto _readField_MyBinaryField;
3419       } else {
3420         goto _skip;
3421       }
3422     }
3423     case 6:
3424     {
3425       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
3426         goto _readField_MyBinaryField2;
3427       } else {
3428         goto _skip;
3429       }
3430     }
3431     case 7:
3432     {
3433       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
3434         goto _readField_MyBinaryField3;
3435       } else {
3436         goto _skip;
3437       }
3438     }
3439     case 8:
3440     {
3441       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
3442         goto _readField_MyBinaryListField4;
3443       } else {
3444         goto _skip;
3445       }
3446     }
3447     case 9:
3448     {
3449       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
3450         goto _readField_MyMapEnumAndInt;
3451       } else {
3452         goto _skip;
3453       }
3454     }
3455     default:
3456     {
3457 _skip:
3458       _readState.skip(iprot);
3459       _readState.readFieldEnd(iprot);
3460       _readState.readFieldBeginNoInline(iprot);
3461       goto _loop;
3462     }
3463   }
3464 }
3465 
3466 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const3467 uint32_t NoexceptMoveComplexStruct::serializedSize(Protocol_ const* prot_) const {
3468   uint32_t xfer = 0;
3469   xfer += prot_->serializedStructSize("NoexceptMoveComplexStruct");
3470   {
3471     xfer += prot_->serializedFieldSize("MyBoolField", apache::thrift::protocol::T_BOOL, 1);
3472     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::serializedSize<false>(*prot_, this->__fbthrift_field_MyBoolField);
3473   }
3474   {
3475     xfer += prot_->serializedFieldSize("MyIntField", apache::thrift::protocol::T_I64, 2);
3476     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_MyIntField);
3477   }
3478   {
3479     xfer += prot_->serializedFieldSize("MyStringField", apache::thrift::protocol::T_STRING, 3);
3480     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyStringField);
3481   }
3482   {
3483     xfer += prot_->serializedFieldSize("MyStringField2", apache::thrift::protocol::T_STRING, 4);
3484     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyStringField2);
3485   }
3486   {
3487     xfer += prot_->serializedFieldSize("MyBinaryField", apache::thrift::protocol::T_STRING, 5);
3488     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyBinaryField);
3489   }
3490   if (this->__isset.get(5)) {
3491     xfer += prot_->serializedFieldSize("MyBinaryField2", apache::thrift::protocol::T_STRING, 6);
3492     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyBinaryField2);
3493   }
3494   {
3495     xfer += prot_->serializedFieldSize("MyBinaryField3", apache::thrift::protocol::T_STRING, 7);
3496     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, this->MyBinaryField3);
3497   }
3498   {
3499     xfer += prot_->serializedFieldSize("MyBinaryListField4", apache::thrift::protocol::T_LIST, 8);
3500     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::binary>, ::std::vector<::std::string>>::serializedSize<false>(*prot_, this->__fbthrift_field_MyBinaryListField4);
3501   }
3502   {
3503     xfer += prot_->serializedFieldSize("MyMapEnumAndInt", apache::thrift::protocol::T_MAP, 9);
3504     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, ::std::map<::apache::thrift::fixtures::types::MyEnumA, ::std::string>>::serializedSize<false>(*prot_, this->__fbthrift_field_MyMapEnumAndInt);
3505   }
3506   xfer += prot_->serializedSizeStop();
3507   return xfer;
3508 }
3509 
3510 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const3511 uint32_t NoexceptMoveComplexStruct::serializedSizeZC(Protocol_ const* prot_) const {
3512   uint32_t xfer = 0;
3513   xfer += prot_->serializedStructSize("NoexceptMoveComplexStruct");
3514   {
3515     xfer += prot_->serializedFieldSize("MyBoolField", apache::thrift::protocol::T_BOOL, 1);
3516     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::serializedSize<false>(*prot_, this->__fbthrift_field_MyBoolField);
3517   }
3518   {
3519     xfer += prot_->serializedFieldSize("MyIntField", apache::thrift::protocol::T_I64, 2);
3520     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_MyIntField);
3521   }
3522   {
3523     xfer += prot_->serializedFieldSize("MyStringField", apache::thrift::protocol::T_STRING, 3);
3524     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyStringField);
3525   }
3526   {
3527     xfer += prot_->serializedFieldSize("MyStringField2", apache::thrift::protocol::T_STRING, 4);
3528     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_MyStringField2);
3529   }
3530   {
3531     xfer += prot_->serializedFieldSize("MyBinaryField", apache::thrift::protocol::T_STRING, 5);
3532     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, this->__fbthrift_field_MyBinaryField);
3533   }
3534   if (this->__isset.get(5)) {
3535     xfer += prot_->serializedFieldSize("MyBinaryField2", apache::thrift::protocol::T_STRING, 6);
3536     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, this->__fbthrift_field_MyBinaryField2);
3537   }
3538   {
3539     xfer += prot_->serializedFieldSize("MyBinaryField3", apache::thrift::protocol::T_STRING, 7);
3540     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, this->MyBinaryField3);
3541   }
3542   {
3543     xfer += prot_->serializedFieldSize("MyBinaryListField4", apache::thrift::protocol::T_LIST, 8);
3544     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::binary>, ::std::vector<::std::string>>::serializedSize<false>(*prot_, this->__fbthrift_field_MyBinaryListField4);
3545   }
3546   {
3547     xfer += prot_->serializedFieldSize("MyMapEnumAndInt", apache::thrift::protocol::T_MAP, 9);
3548     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, ::std::map<::apache::thrift::fixtures::types::MyEnumA, ::std::string>>::serializedSize<false>(*prot_, this->__fbthrift_field_MyMapEnumAndInt);
3549   }
3550   xfer += prot_->serializedSizeStop();
3551   return xfer;
3552 }
3553 
3554 template <class Protocol_>
write(Protocol_ * prot_) const3555 uint32_t NoexceptMoveComplexStruct::write(Protocol_* prot_) const {
3556   uint32_t xfer = 0;
3557   xfer += prot_->writeStructBegin("NoexceptMoveComplexStruct");
3558   bool previousFieldHasValue = true;
3559   {
3560     constexpr int16_t kPrevFieldId = 0;
3561     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_BOOL, 1, kPrevFieldId>(*prot_, "MyBoolField", previousFieldHasValue);
3562     previousFieldHasValue = true;
3563     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::write(*prot_, this->__fbthrift_field_MyBoolField);
3564     xfer += prot_->writeFieldEnd();
3565   }
3566   {
3567     constexpr int16_t kPrevFieldId = 1;
3568     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 2, kPrevFieldId>(*prot_, "MyIntField", previousFieldHasValue);
3569     previousFieldHasValue = true;
3570     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_MyIntField);
3571     xfer += prot_->writeFieldEnd();
3572   }
3573   {
3574     constexpr int16_t kPrevFieldId = 2;
3575     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 3, kPrevFieldId>(*prot_, "MyStringField", previousFieldHasValue);
3576     previousFieldHasValue = true;
3577     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_MyStringField);
3578     xfer += prot_->writeFieldEnd();
3579   }
3580   {
3581     constexpr int16_t kPrevFieldId = 3;
3582     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 4, kPrevFieldId>(*prot_, "MyStringField2", previousFieldHasValue);
3583     previousFieldHasValue = true;
3584     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_MyStringField2);
3585     xfer += prot_->writeFieldEnd();
3586   }
3587   {
3588     constexpr int16_t kPrevFieldId = 4;
3589     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 5, kPrevFieldId>(*prot_, "MyBinaryField", previousFieldHasValue);
3590     previousFieldHasValue = true;
3591     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, this->__fbthrift_field_MyBinaryField);
3592     xfer += prot_->writeFieldEnd();
3593   }
3594   if (this->__isset.get(5)) {
3595     constexpr int16_t kPrevFieldId = 5;
3596     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 6, kPrevFieldId>(*prot_, "MyBinaryField2", previousFieldHasValue);
3597     previousFieldHasValue = true;
3598     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, this->__fbthrift_field_MyBinaryField2);
3599     xfer += prot_->writeFieldEnd();
3600   } else {
3601     previousFieldHasValue = false;
3602   }
3603   {
3604     constexpr int16_t kPrevFieldId = 6;
3605     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 7, kPrevFieldId>(*prot_, "MyBinaryField3", previousFieldHasValue);
3606     previousFieldHasValue = true;
3607     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, this->MyBinaryField3);
3608     xfer += prot_->writeFieldEnd();
3609   }
3610   {
3611     constexpr int16_t kPrevFieldId = 7;
3612     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 8, kPrevFieldId>(*prot_, "MyBinaryListField4", previousFieldHasValue);
3613     previousFieldHasValue = true;
3614     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::binary>, ::std::vector<::std::string>>::write(*prot_, this->__fbthrift_field_MyBinaryListField4);
3615     xfer += prot_->writeFieldEnd();
3616   }
3617   {
3618     constexpr int16_t kPrevFieldId = 8;
3619     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 9, kPrevFieldId>(*prot_, "MyMapEnumAndInt", previousFieldHasValue);
3620     previousFieldHasValue = true;
3621     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, ::std::map<::apache::thrift::fixtures::types::MyEnumA, ::std::string>>::write(*prot_, this->__fbthrift_field_MyMapEnumAndInt);
3622     xfer += prot_->writeFieldEnd();
3623   }
3624   xfer += prot_->writeFieldStop();
3625   xfer += prot_->writeStructEnd();
3626   return xfer;
3627 }
3628 
3629 extern template void NoexceptMoveComplexStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
3630 extern template uint32_t NoexceptMoveComplexStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
3631 extern template uint32_t NoexceptMoveComplexStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
3632 extern template uint32_t NoexceptMoveComplexStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
3633 extern template void NoexceptMoveComplexStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
3634 extern template uint32_t NoexceptMoveComplexStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
3635 extern template uint32_t NoexceptMoveComplexStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
3636 extern template uint32_t NoexceptMoveComplexStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
3637 
3638 }}}} // apache::thrift::fixtures::types
3639 namespace apache { namespace thrift { namespace fixtures { namespace types {
3640 
3641 template <class Protocol_>
readNoXfer(Protocol_ * iprot)3642 void NoExceptMoveUnion::readNoXfer(Protocol_* iprot) {
3643   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
3644   _readState.fieldId = 0;
3645 
3646   _readState.readStructBegin(iprot);
3647 
3648   _readState.readFieldBegin(iprot);
3649   if (_readState.atStop()) {
3650     apache::thrift::clear(*this);
3651   } else {
3652     if (iprot->kUsesFieldNames()) {
3653       _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<NoExceptMoveUnion>>();
3654     }
3655     switch (_readState.fieldId) {
3656       case 1:
3657       {
3658         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING)) {
3659           this->set_string_field();
3660           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, value_.string_field, _readState);
3661 
3662         } else {
3663           _readState.skip(iprot);
3664         }
3665         break;
3666       }
3667       case 2:
3668       {
3669         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32)) {
3670           this->set_i32_field();
3671           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, value_.i32_field, _readState);
3672 
3673         } else {
3674           _readState.skip(iprot);
3675         }
3676         break;
3677       }
3678       default:
3679       {
3680         _readState.skip(iprot);
3681         break;
3682       }
3683     }
3684     _readState.readFieldEnd(iprot);
3685     _readState.readFieldBegin(iprot);
3686     if (UNLIKELY(!_readState.atStop())) {
3687       using apache::thrift::protocol::TProtocolException;
3688       TProtocolException::throwUnionMissingStop();
3689     }
3690   }
3691   _readState.readStructEnd(iprot);
3692 }
3693 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const3694 uint32_t NoExceptMoveUnion::serializedSize(Protocol_ const* prot_) const {
3695   uint32_t xfer = 0;
3696   xfer += prot_->serializedStructSize("NoExceptMoveUnion");
3697   switch(this->getType()) {
3698     case NoExceptMoveUnion::Type::string_field:
3699     {
3700       xfer += prot_->serializedFieldSize("string_field", apache::thrift::protocol::T_STRING, 1);
3701       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, value_.string_field);
3702       break;
3703     }
3704     case NoExceptMoveUnion::Type::i32_field:
3705     {
3706       xfer += prot_->serializedFieldSize("i32_field", apache::thrift::protocol::T_I32, 2);
3707       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, value_.i32_field);
3708       break;
3709     }
3710     case NoExceptMoveUnion::Type::__EMPTY__:;
3711   }
3712   xfer += prot_->serializedSizeStop();
3713   return xfer;
3714 }
3715 
3716 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const3717 uint32_t NoExceptMoveUnion::serializedSizeZC(Protocol_ const* prot_) const {
3718   uint32_t xfer = 0;
3719   xfer += prot_->serializedStructSize("NoExceptMoveUnion");
3720   switch(this->getType()) {
3721     case NoExceptMoveUnion::Type::string_field:
3722     {
3723       xfer += prot_->serializedFieldSize("string_field", apache::thrift::protocol::T_STRING, 1);
3724       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, value_.string_field);
3725       break;
3726     }
3727     case NoExceptMoveUnion::Type::i32_field:
3728     {
3729       xfer += prot_->serializedFieldSize("i32_field", apache::thrift::protocol::T_I32, 2);
3730       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, value_.i32_field);
3731       break;
3732     }
3733     case NoExceptMoveUnion::Type::__EMPTY__:;
3734   }
3735   xfer += prot_->serializedSizeStop();
3736   return xfer;
3737 }
3738 
3739 template <class Protocol_>
write(Protocol_ * prot_) const3740 uint32_t NoExceptMoveUnion::write(Protocol_* prot_) const {
3741   uint32_t xfer = 0;
3742   xfer += prot_->writeStructBegin("NoExceptMoveUnion");
3743   switch(this->getType()) {
3744     case NoExceptMoveUnion::Type::string_field:
3745     {
3746       constexpr int16_t kPrevFieldId = 0;
3747       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "string_field", false);
3748       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, value_.string_field);
3749       xfer += prot_->writeFieldEnd();
3750       break;
3751     }
3752     case NoExceptMoveUnion::Type::i32_field:
3753     {
3754       constexpr int16_t kPrevFieldId = 1;
3755       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 2, kPrevFieldId>(*prot_, "i32_field", false);
3756       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, value_.i32_field);
3757       xfer += prot_->writeFieldEnd();
3758       break;
3759     }
3760     case NoExceptMoveUnion::Type::__EMPTY__:;
3761   }
3762   xfer += prot_->writeFieldStop();
3763   xfer += prot_->writeStructEnd();
3764   return xfer;
3765 }
3766 
3767 extern template void NoExceptMoveUnion::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
3768 extern template uint32_t NoExceptMoveUnion::write<>(apache::thrift::BinaryProtocolWriter*) const;
3769 extern template uint32_t NoExceptMoveUnion::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
3770 extern template uint32_t NoExceptMoveUnion::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
3771 extern template void NoExceptMoveUnion::readNoXfer<>(apache::thrift::CompactProtocolReader*);
3772 extern template uint32_t NoExceptMoveUnion::write<>(apache::thrift::CompactProtocolWriter*) const;
3773 extern template uint32_t NoExceptMoveUnion::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
3774 extern template uint32_t NoExceptMoveUnion::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
3775 
3776 }}}} // apache::thrift::fixtures::types
3777 namespace apache { namespace thrift { namespace fixtures { namespace types {
3778 
3779 template <class Protocol_>
readNoXfer(Protocol_ * iprot)3780 void AllocatorAware::readNoXfer(Protocol_* iprot) {
3781   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
3782 
3783   _readState.readStructBegin(iprot);
3784 
3785   using apache::thrift::TProtocolException;
3786 
3787 
3788   if (UNLIKELY(!_readState.advanceToNextField(
3789           iprot,
3790           0,
3791           1,
3792           apache::thrift::protocol::T_LIST))) {
3793     goto _loop;
3794   }
3795 _readField_aa_list:
3796   {
3797     _readState.beforeSubobject(iprot);
3798     this->__fbthrift_field_aa_list = ::std::vector<::std::int32_t>(this->get_allocator());
3799     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_aa_list, _readState);
3800     _readState.afterSubobject(iprot);
3801 
3802   }
3803  this->__isset.set(0, true);
3804 
3805   if (UNLIKELY(!_readState.advanceToNextField(
3806           iprot,
3807           1,
3808           2,
3809           apache::thrift::protocol::T_SET))) {
3810     goto _loop;
3811   }
3812 _readField_aa_set:
3813   {
3814     _readState.beforeSubobject(iprot);
3815     this->__fbthrift_field_aa_set = ::std::set<::std::int32_t>(this->get_allocator());
3816     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, ::std::set<::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_aa_set, _readState);
3817     _readState.afterSubobject(iprot);
3818 
3819   }
3820  this->__isset.set(1, true);
3821 
3822   if (UNLIKELY(!_readState.advanceToNextField(
3823           iprot,
3824           2,
3825           3,
3826           apache::thrift::protocol::T_MAP))) {
3827     goto _loop;
3828   }
3829 _readField_aa_map:
3830   {
3831     _readState.beforeSubobject(iprot);
3832     this->__fbthrift_field_aa_map = ::std::map<::std::int32_t, ::std::int32_t>(this->get_allocator());
3833     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, ::std::map<::std::int32_t, ::std::int32_t>>::readWithContext(*iprot, this->__fbthrift_field_aa_map, _readState);
3834     _readState.afterSubobject(iprot);
3835 
3836   }
3837  this->__isset.set(2, true);
3838 
3839   if (UNLIKELY(!_readState.advanceToNextField(
3840           iprot,
3841           3,
3842           4,
3843           apache::thrift::protocol::T_STRING))) {
3844     goto _loop;
3845   }
3846 _readField_aa_string:
3847   {
3848     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_aa_string, _readState);
3849 
3850   }
3851  this->__isset.set(3, true);
3852 
3853   if (UNLIKELY(!_readState.advanceToNextField(
3854           iprot,
3855           4,
3856           5,
3857           apache::thrift::protocol::T_I32))) {
3858     goto _loop;
3859   }
3860 _readField_not_a_container:
3861   {
3862     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_not_a_container, _readState);
3863 
3864   }
3865  this->__isset.set(4, true);
3866 
3867   if (UNLIKELY(!_readState.advanceToNextField(
3868           iprot,
3869           5,
3870           0,
3871           apache::thrift::protocol::T_STOP))) {
3872     goto _loop;
3873   }
3874 
3875 _end:
3876   _readState.readStructEnd(iprot);
3877 
3878   return;
3879 
3880 _loop:
3881   _readState.afterAdvanceFailure(iprot);
3882   if (_readState.atStop()) {
3883     goto _end;
3884   }
3885   if (iprot->kUsesFieldNames()) {
3886     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<AllocatorAware>>();
3887   }
3888 
3889   switch (_readState.fieldId) {
3890     case 1:
3891     {
3892       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_LIST))) {
3893         goto _readField_aa_list;
3894       } else {
3895         goto _skip;
3896       }
3897     }
3898     case 2:
3899     {
3900       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_SET))) {
3901         goto _readField_aa_set;
3902       } else {
3903         goto _skip;
3904       }
3905     }
3906     case 3:
3907     {
3908       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_MAP))) {
3909         goto _readField_aa_map;
3910       } else {
3911         goto _skip;
3912       }
3913     }
3914     case 4:
3915     {
3916       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
3917         goto _readField_aa_string;
3918       } else {
3919         goto _skip;
3920       }
3921     }
3922     case 5:
3923     {
3924       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
3925         goto _readField_not_a_container;
3926       } else {
3927         goto _skip;
3928       }
3929     }
3930     default:
3931     {
3932 _skip:
3933       _readState.skip(iprot);
3934       _readState.readFieldEnd(iprot);
3935       _readState.readFieldBeginNoInline(iprot);
3936       goto _loop;
3937     }
3938   }
3939 }
3940 
3941 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const3942 uint32_t AllocatorAware::serializedSize(Protocol_ const* prot_) const {
3943   uint32_t xfer = 0;
3944   xfer += prot_->serializedStructSize("AllocatorAware");
3945   {
3946     xfer += prot_->serializedFieldSize("aa_list", apache::thrift::protocol::T_LIST, 1);
3947     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_list);
3948   }
3949   {
3950     xfer += prot_->serializedFieldSize("aa_set", apache::thrift::protocol::T_SET, 2);
3951     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, ::std::set<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_set);
3952   }
3953   {
3954     xfer += prot_->serializedFieldSize("aa_map", apache::thrift::protocol::T_MAP, 3);
3955     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, ::std::map<::std::int32_t, ::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_map);
3956   }
3957   {
3958     xfer += prot_->serializedFieldSize("aa_string", apache::thrift::protocol::T_STRING, 4);
3959     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_string);
3960   }
3961   {
3962     xfer += prot_->serializedFieldSize("not_a_container", apache::thrift::protocol::T_I32, 5);
3963     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_not_a_container);
3964   }
3965   xfer += prot_->serializedSizeStop();
3966   return xfer;
3967 }
3968 
3969 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const3970 uint32_t AllocatorAware::serializedSizeZC(Protocol_ const* prot_) const {
3971   uint32_t xfer = 0;
3972   xfer += prot_->serializedStructSize("AllocatorAware");
3973   {
3974     xfer += prot_->serializedFieldSize("aa_list", apache::thrift::protocol::T_LIST, 1);
3975     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_list);
3976   }
3977   {
3978     xfer += prot_->serializedFieldSize("aa_set", apache::thrift::protocol::T_SET, 2);
3979     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, ::std::set<::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_set);
3980   }
3981   {
3982     xfer += prot_->serializedFieldSize("aa_map", apache::thrift::protocol::T_MAP, 3);
3983     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, ::std::map<::std::int32_t, ::std::int32_t>>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_map);
3984   }
3985   {
3986     xfer += prot_->serializedFieldSize("aa_string", apache::thrift::protocol::T_STRING, 4);
3987     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_aa_string);
3988   }
3989   {
3990     xfer += prot_->serializedFieldSize("not_a_container", apache::thrift::protocol::T_I32, 5);
3991     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_not_a_container);
3992   }
3993   xfer += prot_->serializedSizeStop();
3994   return xfer;
3995 }
3996 
3997 template <class Protocol_>
write(Protocol_ * prot_) const3998 uint32_t AllocatorAware::write(Protocol_* prot_) const {
3999   uint32_t xfer = 0;
4000   xfer += prot_->writeStructBegin("AllocatorAware");
4001   bool previousFieldHasValue = true;
4002   {
4003     constexpr int16_t kPrevFieldId = 0;
4004     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_LIST, 1, kPrevFieldId>(*prot_, "aa_list", previousFieldHasValue);
4005     previousFieldHasValue = true;
4006     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, ::std::vector<::std::int32_t>>::write(*prot_, this->__fbthrift_field_aa_list);
4007     xfer += prot_->writeFieldEnd();
4008   }
4009   {
4010     constexpr int16_t kPrevFieldId = 1;
4011     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_SET, 2, kPrevFieldId>(*prot_, "aa_set", previousFieldHasValue);
4012     previousFieldHasValue = true;
4013     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, ::std::set<::std::int32_t>>::write(*prot_, this->__fbthrift_field_aa_set);
4014     xfer += prot_->writeFieldEnd();
4015   }
4016   {
4017     constexpr int16_t kPrevFieldId = 2;
4018     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_MAP, 3, kPrevFieldId>(*prot_, "aa_map", previousFieldHasValue);
4019     previousFieldHasValue = true;
4020     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, ::std::map<::std::int32_t, ::std::int32_t>>::write(*prot_, this->__fbthrift_field_aa_map);
4021     xfer += prot_->writeFieldEnd();
4022   }
4023   {
4024     constexpr int16_t kPrevFieldId = 3;
4025     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 4, kPrevFieldId>(*prot_, "aa_string", previousFieldHasValue);
4026     previousFieldHasValue = true;
4027     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_aa_string);
4028     xfer += prot_->writeFieldEnd();
4029   }
4030   {
4031     constexpr int16_t kPrevFieldId = 4;
4032     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 5, kPrevFieldId>(*prot_, "not_a_container", previousFieldHasValue);
4033     previousFieldHasValue = true;
4034     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_not_a_container);
4035     xfer += prot_->writeFieldEnd();
4036   }
4037   xfer += prot_->writeFieldStop();
4038   xfer += prot_->writeStructEnd();
4039   return xfer;
4040 }
4041 
4042 extern template void AllocatorAware::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
4043 extern template uint32_t AllocatorAware::write<>(apache::thrift::BinaryProtocolWriter*) const;
4044 extern template uint32_t AllocatorAware::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
4045 extern template uint32_t AllocatorAware::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
4046 extern template void AllocatorAware::readNoXfer<>(apache::thrift::CompactProtocolReader*);
4047 extern template uint32_t AllocatorAware::write<>(apache::thrift::CompactProtocolWriter*) const;
4048 extern template uint32_t AllocatorAware::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
4049 extern template uint32_t AllocatorAware::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
4050 
4051 }}}} // apache::thrift::fixtures::types
4052 namespace apache { namespace thrift { namespace fixtures { namespace types {
4053 
4054 template <class Protocol_>
readNoXfer(Protocol_ * iprot)4055 void AllocatorAware2::readNoXfer(Protocol_* iprot) {
4056   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
4057 
4058   _readState.readStructBegin(iprot);
4059 
4060   using apache::thrift::TProtocolException;
4061 
4062 
4063   if (UNLIKELY(!_readState.advanceToNextField(
4064           iprot,
4065           0,
4066           1,
4067           apache::thrift::protocol::T_I32))) {
4068     goto _loop;
4069   }
4070 _readField_not_a_container:
4071   {
4072     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_not_a_container, _readState);
4073 
4074   }
4075  this->__isset.set(0, true);
4076 
4077   if (UNLIKELY(!_readState.advanceToNextField(
4078           iprot,
4079           1,
4080           0,
4081           apache::thrift::protocol::T_STOP))) {
4082     goto _loop;
4083   }
4084 
4085 _end:
4086   _readState.readStructEnd(iprot);
4087 
4088   return;
4089 
4090 _loop:
4091   _readState.afterAdvanceFailure(iprot);
4092   if (_readState.atStop()) {
4093     goto _end;
4094   }
4095   if (iprot->kUsesFieldNames()) {
4096     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<AllocatorAware2>>();
4097   }
4098 
4099   switch (_readState.fieldId) {
4100     case 1:
4101     {
4102       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
4103         goto _readField_not_a_container;
4104       } else {
4105         goto _skip;
4106       }
4107     }
4108     default:
4109     {
4110 _skip:
4111       _readState.skip(iprot);
4112       _readState.readFieldEnd(iprot);
4113       _readState.readFieldBeginNoInline(iprot);
4114       goto _loop;
4115     }
4116   }
4117 }
4118 
4119 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const4120 uint32_t AllocatorAware2::serializedSize(Protocol_ const* prot_) const {
4121   uint32_t xfer = 0;
4122   xfer += prot_->serializedStructSize("AllocatorAware2");
4123   {
4124     xfer += prot_->serializedFieldSize("not_a_container", apache::thrift::protocol::T_I32, 1);
4125     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_not_a_container);
4126   }
4127   xfer += prot_->serializedSizeStop();
4128   return xfer;
4129 }
4130 
4131 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const4132 uint32_t AllocatorAware2::serializedSizeZC(Protocol_ const* prot_) const {
4133   uint32_t xfer = 0;
4134   xfer += prot_->serializedStructSize("AllocatorAware2");
4135   {
4136     xfer += prot_->serializedFieldSize("not_a_container", apache::thrift::protocol::T_I32, 1);
4137     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_not_a_container);
4138   }
4139   xfer += prot_->serializedSizeStop();
4140   return xfer;
4141 }
4142 
4143 template <class Protocol_>
write(Protocol_ * prot_) const4144 uint32_t AllocatorAware2::write(Protocol_* prot_) const {
4145   uint32_t xfer = 0;
4146   xfer += prot_->writeStructBegin("AllocatorAware2");
4147   bool previousFieldHasValue = true;
4148   {
4149     constexpr int16_t kPrevFieldId = 0;
4150     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "not_a_container", previousFieldHasValue);
4151     previousFieldHasValue = true;
4152     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_not_a_container);
4153     xfer += prot_->writeFieldEnd();
4154   }
4155   xfer += prot_->writeFieldStop();
4156   xfer += prot_->writeStructEnd();
4157   return xfer;
4158 }
4159 
4160 extern template void AllocatorAware2::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
4161 extern template uint32_t AllocatorAware2::write<>(apache::thrift::BinaryProtocolWriter*) const;
4162 extern template uint32_t AllocatorAware2::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
4163 extern template uint32_t AllocatorAware2::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
4164 extern template void AllocatorAware2::readNoXfer<>(apache::thrift::CompactProtocolReader*);
4165 extern template uint32_t AllocatorAware2::write<>(apache::thrift::CompactProtocolWriter*) const;
4166 extern template uint32_t AllocatorAware2::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
4167 extern template uint32_t AllocatorAware2::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
4168 
4169 }}}} // apache::thrift::fixtures::types
4170 namespace apache { namespace thrift { namespace fixtures { namespace types {
4171 
4172 template <class Protocol_>
readNoXfer(Protocol_ * iprot)4173 void TypedefStruct::readNoXfer(Protocol_* iprot) {
4174   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
4175 
4176   _readState.readStructBegin(iprot);
4177 
4178   using apache::thrift::TProtocolException;
4179 
4180 
4181   if (UNLIKELY(!_readState.advanceToNextField(
4182           iprot,
4183           0,
4184           1,
4185           apache::thrift::protocol::T_I32))) {
4186     goto _loop;
4187   }
4188 _readField_i32_field:
4189   {
4190     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_i32_field, _readState);
4191 
4192   }
4193  this->__isset.set(0, true);
4194 
4195   if (UNLIKELY(!_readState.advanceToNextField(
4196           iprot,
4197           1,
4198           2,
4199           apache::thrift::protocol::T_I32))) {
4200     goto _loop;
4201   }
4202 _readField_IntTypedef_field:
4203   {
4204     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::apache::thrift::fixtures::types::IntTypedef>::readWithContext(*iprot, this->__fbthrift_field_IntTypedef_field, _readState);
4205 
4206   }
4207  this->__isset.set(1, true);
4208 
4209   if (UNLIKELY(!_readState.advanceToNextField(
4210           iprot,
4211           2,
4212           3,
4213           apache::thrift::protocol::T_I32))) {
4214     goto _loop;
4215   }
4216 _readField_UintTypedef_field:
4217   {
4218     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, std::uint32_t>::readWithContext(*iprot, this->__fbthrift_field_UintTypedef_field, _readState);
4219 
4220   }
4221  this->__isset.set(2, true);
4222 
4223   if (UNLIKELY(!_readState.advanceToNextField(
4224           iprot,
4225           3,
4226           0,
4227           apache::thrift::protocol::T_STOP))) {
4228     goto _loop;
4229   }
4230 
4231 _end:
4232   _readState.readStructEnd(iprot);
4233 
4234   return;
4235 
4236 _loop:
4237   _readState.afterAdvanceFailure(iprot);
4238   if (_readState.atStop()) {
4239     goto _end;
4240   }
4241   if (iprot->kUsesFieldNames()) {
4242     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<TypedefStruct>>();
4243   }
4244 
4245   switch (_readState.fieldId) {
4246     case 1:
4247     {
4248       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
4249         goto _readField_i32_field;
4250       } else {
4251         goto _skip;
4252       }
4253     }
4254     case 2:
4255     {
4256       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
4257         goto _readField_IntTypedef_field;
4258       } else {
4259         goto _skip;
4260       }
4261     }
4262     case 3:
4263     {
4264       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
4265         goto _readField_UintTypedef_field;
4266       } else {
4267         goto _skip;
4268       }
4269     }
4270     default:
4271     {
4272 _skip:
4273       _readState.skip(iprot);
4274       _readState.readFieldEnd(iprot);
4275       _readState.readFieldBeginNoInline(iprot);
4276       goto _loop;
4277     }
4278   }
4279 }
4280 
4281 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const4282 uint32_t TypedefStruct::serializedSize(Protocol_ const* prot_) const {
4283   uint32_t xfer = 0;
4284   xfer += prot_->serializedStructSize("TypedefStruct");
4285   {
4286     xfer += prot_->serializedFieldSize("i32_field", apache::thrift::protocol::T_I32, 1);
4287     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_i32_field);
4288   }
4289   {
4290     xfer += prot_->serializedFieldSize("IntTypedef_field", apache::thrift::protocol::T_I32, 2);
4291     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::apache::thrift::fixtures::types::IntTypedef>::serializedSize<false>(*prot_, this->__fbthrift_field_IntTypedef_field);
4292   }
4293   {
4294     xfer += prot_->serializedFieldSize("UintTypedef_field", apache::thrift::protocol::T_I32, 3);
4295     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, std::uint32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_UintTypedef_field);
4296   }
4297   xfer += prot_->serializedSizeStop();
4298   return xfer;
4299 }
4300 
4301 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const4302 uint32_t TypedefStruct::serializedSizeZC(Protocol_ const* prot_) const {
4303   uint32_t xfer = 0;
4304   xfer += prot_->serializedStructSize("TypedefStruct");
4305   {
4306     xfer += prot_->serializedFieldSize("i32_field", apache::thrift::protocol::T_I32, 1);
4307     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_i32_field);
4308   }
4309   {
4310     xfer += prot_->serializedFieldSize("IntTypedef_field", apache::thrift::protocol::T_I32, 2);
4311     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::apache::thrift::fixtures::types::IntTypedef>::serializedSize<false>(*prot_, this->__fbthrift_field_IntTypedef_field);
4312   }
4313   {
4314     xfer += prot_->serializedFieldSize("UintTypedef_field", apache::thrift::protocol::T_I32, 3);
4315     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, std::uint32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_UintTypedef_field);
4316   }
4317   xfer += prot_->serializedSizeStop();
4318   return xfer;
4319 }
4320 
4321 template <class Protocol_>
write(Protocol_ * prot_) const4322 uint32_t TypedefStruct::write(Protocol_* prot_) const {
4323   uint32_t xfer = 0;
4324   xfer += prot_->writeStructBegin("TypedefStruct");
4325   bool previousFieldHasValue = true;
4326   {
4327     constexpr int16_t kPrevFieldId = 0;
4328     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "i32_field", previousFieldHasValue);
4329     previousFieldHasValue = true;
4330     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_i32_field);
4331     xfer += prot_->writeFieldEnd();
4332   }
4333   {
4334     constexpr int16_t kPrevFieldId = 1;
4335     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 2, kPrevFieldId>(*prot_, "IntTypedef_field", previousFieldHasValue);
4336     previousFieldHasValue = true;
4337     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::apache::thrift::fixtures::types::IntTypedef>::write(*prot_, this->__fbthrift_field_IntTypedef_field);
4338     xfer += prot_->writeFieldEnd();
4339   }
4340   {
4341     constexpr int16_t kPrevFieldId = 2;
4342     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 3, kPrevFieldId>(*prot_, "UintTypedef_field", previousFieldHasValue);
4343     previousFieldHasValue = true;
4344     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, std::uint32_t>::write(*prot_, this->__fbthrift_field_UintTypedef_field);
4345     xfer += prot_->writeFieldEnd();
4346   }
4347   xfer += prot_->writeFieldStop();
4348   xfer += prot_->writeStructEnd();
4349   return xfer;
4350 }
4351 
4352 extern template void TypedefStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
4353 extern template uint32_t TypedefStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
4354 extern template uint32_t TypedefStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
4355 extern template uint32_t TypedefStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
4356 extern template void TypedefStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
4357 extern template uint32_t TypedefStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
4358 extern template uint32_t TypedefStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
4359 extern template uint32_t TypedefStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
4360 
4361 }}}} // apache::thrift::fixtures::types
4362 namespace apache { namespace thrift { namespace fixtures { namespace types {
4363 
4364 template <class Protocol_>
readNoXfer(Protocol_ * iprot)4365 void StructWithDoubleUnderscores::readNoXfer(Protocol_* iprot) {
4366   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
4367 
4368   _readState.readStructBegin(iprot);
4369 
4370   using apache::thrift::TProtocolException;
4371 
4372 
4373   if (UNLIKELY(!_readState.advanceToNextField(
4374           iprot,
4375           0,
4376           1,
4377           apache::thrift::protocol::T_I32))) {
4378     goto _loop;
4379   }
4380 _readField___field:
4381   {
4382     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field___field, _readState);
4383 
4384   }
4385  this->__isset.set(0, true);
4386 
4387   if (UNLIKELY(!_readState.advanceToNextField(
4388           iprot,
4389           1,
4390           0,
4391           apache::thrift::protocol::T_STOP))) {
4392     goto _loop;
4393   }
4394 
4395 _end:
4396   _readState.readStructEnd(iprot);
4397 
4398   return;
4399 
4400 _loop:
4401   _readState.afterAdvanceFailure(iprot);
4402   if (_readState.atStop()) {
4403     goto _end;
4404   }
4405   if (iprot->kUsesFieldNames()) {
4406     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<StructWithDoubleUnderscores>>();
4407   }
4408 
4409   switch (_readState.fieldId) {
4410     case 1:
4411     {
4412       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
4413         goto _readField___field;
4414       } else {
4415         goto _skip;
4416       }
4417     }
4418     default:
4419     {
4420 _skip:
4421       _readState.skip(iprot);
4422       _readState.readFieldEnd(iprot);
4423       _readState.readFieldBeginNoInline(iprot);
4424       goto _loop;
4425     }
4426   }
4427 }
4428 
4429 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const4430 uint32_t StructWithDoubleUnderscores::serializedSize(Protocol_ const* prot_) const {
4431   uint32_t xfer = 0;
4432   xfer += prot_->serializedStructSize("StructWithDoubleUnderscores");
4433   {
4434     xfer += prot_->serializedFieldSize("__field", apache::thrift::protocol::T_I32, 1);
4435     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field___field);
4436   }
4437   xfer += prot_->serializedSizeStop();
4438   return xfer;
4439 }
4440 
4441 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const4442 uint32_t StructWithDoubleUnderscores::serializedSizeZC(Protocol_ const* prot_) const {
4443   uint32_t xfer = 0;
4444   xfer += prot_->serializedStructSize("StructWithDoubleUnderscores");
4445   {
4446     xfer += prot_->serializedFieldSize("__field", apache::thrift::protocol::T_I32, 1);
4447     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field___field);
4448   }
4449   xfer += prot_->serializedSizeStop();
4450   return xfer;
4451 }
4452 
4453 template <class Protocol_>
write(Protocol_ * prot_) const4454 uint32_t StructWithDoubleUnderscores::write(Protocol_* prot_) const {
4455   uint32_t xfer = 0;
4456   xfer += prot_->writeStructBegin("StructWithDoubleUnderscores");
4457   bool previousFieldHasValue = true;
4458   {
4459     constexpr int16_t kPrevFieldId = 0;
4460     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "__field", previousFieldHasValue);
4461     previousFieldHasValue = true;
4462     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field___field);
4463     xfer += prot_->writeFieldEnd();
4464   }
4465   xfer += prot_->writeFieldStop();
4466   xfer += prot_->writeStructEnd();
4467   return xfer;
4468 }
4469 
4470 extern template void StructWithDoubleUnderscores::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
4471 extern template uint32_t StructWithDoubleUnderscores::write<>(apache::thrift::BinaryProtocolWriter*) const;
4472 extern template uint32_t StructWithDoubleUnderscores::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
4473 extern template uint32_t StructWithDoubleUnderscores::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
4474 extern template void StructWithDoubleUnderscores::readNoXfer<>(apache::thrift::CompactProtocolReader*);
4475 extern template uint32_t StructWithDoubleUnderscores::write<>(apache::thrift::CompactProtocolWriter*) const;
4476 extern template uint32_t StructWithDoubleUnderscores::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
4477 extern template uint32_t StructWithDoubleUnderscores::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
4478 
4479 }}}} // apache::thrift::fixtures::types
4480