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/py3/gen-py3cpp/module_types.h"
10 
11 #include <thrift/lib/cpp2/gen/module_types_tcc.h>
12 
13 namespace py3 { namespace simple {
14 
15 }} // py3::simple
16 namespace std {
17 
18 } // std
19 
20 namespace py3 { namespace simple {
21 
22 }} // py3::simple
23 namespace std {
24 
25 } // std
26 
27 
28 namespace apache {
29 namespace thrift {
30 namespace detail {
31 
32 template <>
33 struct TccStructTraits<::py3::simple::SimpleException> {
34   static void translateFieldName(
35       folly::StringPiece _fname,
36       int16_t& fid,
37       apache::thrift::protocol::TType& _ftype) noexcept;
38 };
39 template <>
40 struct TccStructTraits<::py3::simple::OptionalRefStruct> {
41   static void translateFieldName(
42       folly::StringPiece _fname,
43       int16_t& fid,
44       apache::thrift::protocol::TType& _ftype) noexcept;
45 };
46 template <>
47 struct TccStructTraits<::py3::simple::SimpleStruct> {
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<::py3::simple::ComplexStruct> {
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<::py3::simple::BinaryUnion> {
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<::py3::simple::BinaryUnionStruct> {
69   static void translateFieldName(
70       folly::StringPiece _fname,
71       int16_t& fid,
72       apache::thrift::protocol::TType& _ftype) noexcept;
73 };
74 
75 } // namespace detail
76 } // namespace thrift
77 } // namespace apache
78 
79 namespace py3 { namespace simple {
80 
81 template <class Protocol_>
readNoXfer(Protocol_ * iprot)82 void SimpleException::readNoXfer(Protocol_* iprot) {
83   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
84 
85   _readState.readStructBegin(iprot);
86 
87   using apache::thrift::TProtocolException;
88 
89 
90   if (UNLIKELY(!_readState.advanceToNextField(
91           iprot,
92           0,
93           1,
94           apache::thrift::protocol::T_I16))) {
95     goto _loop;
96   }
97 _readField_err_code:
98   {
99     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::readWithContext(*iprot, this->err_code, _readState);
100 
101   }
102  this->__isset.set(0, true);
103 
104   if (UNLIKELY(!_readState.advanceToNextField(
105           iprot,
106           1,
107           0,
108           apache::thrift::protocol::T_STOP))) {
109     goto _loop;
110   }
111 
112 _end:
113   _readState.readStructEnd(iprot);
114 
115   return;
116 
117 _loop:
118   _readState.afterAdvanceFailure(iprot);
119   if (_readState.atStop()) {
120     goto _end;
121   }
122   if (iprot->kUsesFieldNames()) {
123     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<SimpleException>>();
124   }
125 
126   switch (_readState.fieldId) {
127     case 1:
128     {
129       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I16))) {
130         goto _readField_err_code;
131       } else {
132         goto _skip;
133       }
134     }
135     default:
136     {
137 _skip:
138       _readState.skip(iprot);
139       _readState.readFieldEnd(iprot);
140       _readState.readFieldBeginNoInline(iprot);
141       goto _loop;
142     }
143   }
144 }
145 
146 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const147 uint32_t SimpleException::serializedSize(Protocol_ const* prot_) const {
148   uint32_t xfer = 0;
149   xfer += prot_->serializedStructSize("SimpleException");
150   {
151     xfer += prot_->serializedFieldSize("err_code", apache::thrift::protocol::T_I16, 1);
152     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->err_code);
153   }
154   xfer += prot_->serializedSizeStop();
155   return xfer;
156 }
157 
158 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const159 uint32_t SimpleException::serializedSizeZC(Protocol_ const* prot_) const {
160   uint32_t xfer = 0;
161   xfer += prot_->serializedStructSize("SimpleException");
162   {
163     xfer += prot_->serializedFieldSize("err_code", apache::thrift::protocol::T_I16, 1);
164     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->err_code);
165   }
166   xfer += prot_->serializedSizeStop();
167   return xfer;
168 }
169 
170 template <class Protocol_>
write(Protocol_ * prot_) const171 uint32_t SimpleException::write(Protocol_* prot_) const {
172   uint32_t xfer = 0;
173   xfer += prot_->writeStructBegin("SimpleException");
174   bool previousFieldHasValue = true;
175   {
176     constexpr int16_t kPrevFieldId = 0;
177     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I16, 1, kPrevFieldId>(*prot_, "err_code", previousFieldHasValue);
178     previousFieldHasValue = true;
179     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::write(*prot_, this->err_code);
180     xfer += prot_->writeFieldEnd();
181   }
182   xfer += prot_->writeFieldStop();
183   xfer += prot_->writeStructEnd();
184   return xfer;
185 }
186 
187 extern template void SimpleException::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
188 extern template uint32_t SimpleException::write<>(apache::thrift::BinaryProtocolWriter*) const;
189 extern template uint32_t SimpleException::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
190 extern template uint32_t SimpleException::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
191 extern template void SimpleException::readNoXfer<>(apache::thrift::CompactProtocolReader*);
192 extern template uint32_t SimpleException::write<>(apache::thrift::CompactProtocolWriter*) const;
193 extern template uint32_t SimpleException::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
194 extern template uint32_t SimpleException::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
195 
196 }} // py3::simple
197 namespace py3 { namespace simple {
198 
199 template <class Protocol_>
readNoXfer(Protocol_ * iprot)200 void OptionalRefStruct::readNoXfer(Protocol_* iprot) {
201   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
202 
203   _readState.readStructBegin(iprot);
204 
205   using apache::thrift::TProtocolException;
206 
207 
208   if (UNLIKELY(!_readState.advanceToNextField(
209           iprot,
210           0,
211           1,
212           apache::thrift::protocol::T_STRING))) {
213     goto _loop;
214   }
215 _readField_optional_blob:
216   {
217     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBufPtr>::readWithContext(*iprot, this->optional_blob, _readState);
218 
219   }
220  this->__isset.set(0, true);
221 
222   if (UNLIKELY(!_readState.advanceToNextField(
223           iprot,
224           1,
225           0,
226           apache::thrift::protocol::T_STOP))) {
227     goto _loop;
228   }
229 
230 _end:
231   _readState.readStructEnd(iprot);
232 
233   return;
234 
235 _loop:
236   _readState.afterAdvanceFailure(iprot);
237   if (_readState.atStop()) {
238     goto _end;
239   }
240   if (iprot->kUsesFieldNames()) {
241     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<OptionalRefStruct>>();
242   }
243 
244   switch (_readState.fieldId) {
245     case 1:
246     {
247       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
248         goto _readField_optional_blob;
249       } else {
250         goto _skip;
251       }
252     }
253     default:
254     {
255 _skip:
256       _readState.skip(iprot);
257       _readState.readFieldEnd(iprot);
258       _readState.readFieldBeginNoInline(iprot);
259       goto _loop;
260     }
261   }
262 }
263 
264 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const265 uint32_t OptionalRefStruct::serializedSize(Protocol_ const* prot_) const {
266   uint32_t xfer = 0;
267   xfer += prot_->serializedStructSize("OptionalRefStruct");
268   if (this->__isset.get(0)) {
269     xfer += prot_->serializedFieldSize("optional_blob", apache::thrift::protocol::T_STRING, 1);
270     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBufPtr>::serializedSize<false>(*prot_, this->optional_blob);
271   }
272   xfer += prot_->serializedSizeStop();
273   return xfer;
274 }
275 
276 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const277 uint32_t OptionalRefStruct::serializedSizeZC(Protocol_ const* prot_) const {
278   uint32_t xfer = 0;
279   xfer += prot_->serializedStructSize("OptionalRefStruct");
280   if (this->__isset.get(0)) {
281     xfer += prot_->serializedFieldSize("optional_blob", apache::thrift::protocol::T_STRING, 1);
282     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBufPtr>::serializedSize<true>(*prot_, this->optional_blob);
283   }
284   xfer += prot_->serializedSizeStop();
285   return xfer;
286 }
287 
288 template <class Protocol_>
write(Protocol_ * prot_) const289 uint32_t OptionalRefStruct::write(Protocol_* prot_) const {
290   uint32_t xfer = 0;
291   xfer += prot_->writeStructBegin("OptionalRefStruct");
292   bool previousFieldHasValue = true;
293   if (this->__isset.get(0)) {
294     constexpr int16_t kPrevFieldId = 0;
295     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "optional_blob", previousFieldHasValue);
296     previousFieldHasValue = true;
297     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBufPtr>::write(*prot_, this->optional_blob);
298     xfer += prot_->writeFieldEnd();
299   } else {
300     previousFieldHasValue = false;
301   }
302   xfer += prot_->writeFieldStop();
303   xfer += prot_->writeStructEnd();
304   return xfer;
305 }
306 
307 extern template void OptionalRefStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
308 extern template uint32_t OptionalRefStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
309 extern template uint32_t OptionalRefStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
310 extern template uint32_t OptionalRefStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
311 extern template void OptionalRefStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
312 extern template uint32_t OptionalRefStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
313 extern template uint32_t OptionalRefStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
314 extern template uint32_t OptionalRefStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
315 
316 }} // py3::simple
317 namespace py3 { namespace simple {
318 
319 template <class Protocol_>
readNoXfer(Protocol_ * iprot)320 void SimpleStruct::readNoXfer(Protocol_* iprot) {
321   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
322 
323   _readState.readStructBegin(iprot);
324 
325   using apache::thrift::TProtocolException;
326 
327 
328   if (UNLIKELY(!_readState.advanceToNextField(
329           iprot,
330           0,
331           1,
332           apache::thrift::protocol::T_BOOL))) {
333     goto _loop;
334   }
335 _readField_is_on:
336   {
337     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::readWithContext(*iprot, this->__fbthrift_field_is_on, _readState);
338 
339   }
340  this->__isset.set(0, true);
341 
342   if (UNLIKELY(!_readState.advanceToNextField(
343           iprot,
344           1,
345           2,
346           apache::thrift::protocol::T_BYTE))) {
347     goto _loop;
348   }
349 _readField_tiny_int:
350   {
351     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::readWithContext(*iprot, this->__fbthrift_field_tiny_int, _readState);
352 
353   }
354  this->__isset.set(1, true);
355 
356   if (UNLIKELY(!_readState.advanceToNextField(
357           iprot,
358           2,
359           3,
360           apache::thrift::protocol::T_I16))) {
361     goto _loop;
362   }
363 _readField_small_int:
364   {
365     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::readWithContext(*iprot, this->__fbthrift_field_small_int, _readState);
366 
367   }
368  this->__isset.set(2, true);
369 
370   if (UNLIKELY(!_readState.advanceToNextField(
371           iprot,
372           3,
373           4,
374           apache::thrift::protocol::T_I32))) {
375     goto _loop;
376   }
377 _readField_nice_sized_int:
378   {
379     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_nice_sized_int, _readState);
380 
381   }
382  this->__isset.set(3, true);
383 
384   if (UNLIKELY(!_readState.advanceToNextField(
385           iprot,
386           4,
387           5,
388           apache::thrift::protocol::T_I64))) {
389     goto _loop;
390   }
391 _readField_big_int:
392   {
393     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::readWithContext(*iprot, this->__fbthrift_field_big_int, _readState);
394 
395   }
396  this->__isset.set(4, true);
397 
398   if (UNLIKELY(!_readState.advanceToNextField(
399           iprot,
400           5,
401           6,
402           apache::thrift::protocol::T_DOUBLE))) {
403     goto _loop;
404   }
405 _readField_real:
406   {
407     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, double>::readWithContext(*iprot, this->__fbthrift_field_real, _readState);
408 
409   }
410  this->__isset.set(5, true);
411 
412   if (UNLIKELY(!_readState.advanceToNextField(
413           iprot,
414           6,
415           7,
416           apache::thrift::protocol::T_FLOAT))) {
417     goto _loop;
418   }
419 _readField_smaller_real:
420   {
421     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, float>::readWithContext(*iprot, this->__fbthrift_field_smaller_real, _readState);
422 
423   }
424  this->__isset.set(6, true);
425 
426   if (UNLIKELY(!_readState.advanceToNextField(
427           iprot,
428           7,
429           8,
430           apache::thrift::protocol::T_I16))) {
431     goto _loop;
432   }
433 _readField_hidden_field:
434   {
435     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::readWithContext(*iprot, this->__fbthrift_field_hidden_field, _readState);
436 
437   }
438  this->__isset.set(7, true);
439 
440   if (UNLIKELY(!_readState.advanceToNextField(
441           iprot,
442           8,
443           0,
444           apache::thrift::protocol::T_STOP))) {
445     goto _loop;
446   }
447 
448 _end:
449   _readState.readStructEnd(iprot);
450 
451   return;
452 
453 _loop:
454   _readState.afterAdvanceFailure(iprot);
455   if (_readState.atStop()) {
456     goto _end;
457   }
458   if (iprot->kUsesFieldNames()) {
459     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<SimpleStruct>>();
460   }
461 
462   switch (_readState.fieldId) {
463     case 1:
464     {
465       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_BOOL))) {
466         goto _readField_is_on;
467       } else {
468         goto _skip;
469       }
470     }
471     case 2:
472     {
473       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_BYTE))) {
474         goto _readField_tiny_int;
475       } else {
476         goto _skip;
477       }
478     }
479     case 3:
480     {
481       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I16))) {
482         goto _readField_small_int;
483       } else {
484         goto _skip;
485       }
486     }
487     case 4:
488     {
489       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
490         goto _readField_nice_sized_int;
491       } else {
492         goto _skip;
493       }
494     }
495     case 5:
496     {
497       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I64))) {
498         goto _readField_big_int;
499       } else {
500         goto _skip;
501       }
502     }
503     case 6:
504     {
505       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_DOUBLE))) {
506         goto _readField_real;
507       } else {
508         goto _skip;
509       }
510     }
511     case 7:
512     {
513       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_FLOAT))) {
514         goto _readField_smaller_real;
515       } else {
516         goto _skip;
517       }
518     }
519     case 8:
520     {
521       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I16))) {
522         goto _readField_hidden_field;
523       } else {
524         goto _skip;
525       }
526     }
527     default:
528     {
529 _skip:
530       _readState.skip(iprot);
531       _readState.readFieldEnd(iprot);
532       _readState.readFieldBeginNoInline(iprot);
533       goto _loop;
534     }
535   }
536 }
537 
538 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const539 uint32_t SimpleStruct::serializedSize(Protocol_ const* prot_) const {
540   uint32_t xfer = 0;
541   xfer += prot_->serializedStructSize("SimpleStruct");
542   {
543     xfer += prot_->serializedFieldSize("is_on", apache::thrift::protocol::T_BOOL, 1);
544     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::serializedSize<false>(*prot_, this->__fbthrift_field_is_on);
545   }
546   {
547     xfer += prot_->serializedFieldSize("tiny_int", apache::thrift::protocol::T_BYTE, 2);
548     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::serializedSize<false>(*prot_, this->__fbthrift_field_tiny_int);
549   }
550   {
551     xfer += prot_->serializedFieldSize("small_int", apache::thrift::protocol::T_I16, 3);
552     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->__fbthrift_field_small_int);
553   }
554   {
555     xfer += prot_->serializedFieldSize("nice_sized_int", apache::thrift::protocol::T_I32, 4);
556     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_nice_sized_int);
557   }
558   {
559     xfer += prot_->serializedFieldSize("big_int", apache::thrift::protocol::T_I64, 5);
560     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_big_int);
561   }
562   {
563     xfer += prot_->serializedFieldSize("real", apache::thrift::protocol::T_DOUBLE, 6);
564     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, double>::serializedSize<false>(*prot_, this->__fbthrift_field_real);
565   }
566   {
567     xfer += prot_->serializedFieldSize("smaller_real", apache::thrift::protocol::T_FLOAT, 7);
568     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, float>::serializedSize<false>(*prot_, this->__fbthrift_field_smaller_real);
569   }
570   {
571     xfer += prot_->serializedFieldSize("hidden_field", apache::thrift::protocol::T_I16, 8);
572     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->__fbthrift_field_hidden_field);
573   }
574   xfer += prot_->serializedSizeStop();
575   return xfer;
576 }
577 
578 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const579 uint32_t SimpleStruct::serializedSizeZC(Protocol_ const* prot_) const {
580   uint32_t xfer = 0;
581   xfer += prot_->serializedStructSize("SimpleStruct");
582   {
583     xfer += prot_->serializedFieldSize("is_on", apache::thrift::protocol::T_BOOL, 1);
584     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::serializedSize<false>(*prot_, this->__fbthrift_field_is_on);
585   }
586   {
587     xfer += prot_->serializedFieldSize("tiny_int", apache::thrift::protocol::T_BYTE, 2);
588     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::serializedSize<false>(*prot_, this->__fbthrift_field_tiny_int);
589   }
590   {
591     xfer += prot_->serializedFieldSize("small_int", apache::thrift::protocol::T_I16, 3);
592     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->__fbthrift_field_small_int);
593   }
594   {
595     xfer += prot_->serializedFieldSize("nice_sized_int", apache::thrift::protocol::T_I32, 4);
596     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_nice_sized_int);
597   }
598   {
599     xfer += prot_->serializedFieldSize("big_int", apache::thrift::protocol::T_I64, 5);
600     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::serializedSize<false>(*prot_, this->__fbthrift_field_big_int);
601   }
602   {
603     xfer += prot_->serializedFieldSize("real", apache::thrift::protocol::T_DOUBLE, 6);
604     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, double>::serializedSize<false>(*prot_, this->__fbthrift_field_real);
605   }
606   {
607     xfer += prot_->serializedFieldSize("smaller_real", apache::thrift::protocol::T_FLOAT, 7);
608     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, float>::serializedSize<false>(*prot_, this->__fbthrift_field_smaller_real);
609   }
610   {
611     xfer += prot_->serializedFieldSize("hidden_field", apache::thrift::protocol::T_I16, 8);
612     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::serializedSize<false>(*prot_, this->__fbthrift_field_hidden_field);
613   }
614   xfer += prot_->serializedSizeStop();
615   return xfer;
616 }
617 
618 template <class Protocol_>
write(Protocol_ * prot_) const619 uint32_t SimpleStruct::write(Protocol_* prot_) const {
620   uint32_t xfer = 0;
621   xfer += prot_->writeStructBegin("SimpleStruct");
622   bool previousFieldHasValue = true;
623   {
624     constexpr int16_t kPrevFieldId = 0;
625     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_BOOL, 1, kPrevFieldId>(*prot_, "is_on", previousFieldHasValue);
626     previousFieldHasValue = true;
627     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, bool>::write(*prot_, this->__fbthrift_field_is_on);
628     xfer += prot_->writeFieldEnd();
629   }
630   {
631     constexpr int16_t kPrevFieldId = 1;
632     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_BYTE, 2, kPrevFieldId>(*prot_, "tiny_int", previousFieldHasValue);
633     previousFieldHasValue = true;
634     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int8_t>::write(*prot_, this->__fbthrift_field_tiny_int);
635     xfer += prot_->writeFieldEnd();
636   }
637   {
638     constexpr int16_t kPrevFieldId = 2;
639     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I16, 3, kPrevFieldId>(*prot_, "small_int", previousFieldHasValue);
640     previousFieldHasValue = true;
641     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::write(*prot_, this->__fbthrift_field_small_int);
642     xfer += prot_->writeFieldEnd();
643   }
644   {
645     constexpr int16_t kPrevFieldId = 3;
646     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 4, kPrevFieldId>(*prot_, "nice_sized_int", previousFieldHasValue);
647     previousFieldHasValue = true;
648     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_nice_sized_int);
649     xfer += prot_->writeFieldEnd();
650   }
651   {
652     constexpr int16_t kPrevFieldId = 4;
653     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I64, 5, kPrevFieldId>(*prot_, "big_int", previousFieldHasValue);
654     previousFieldHasValue = true;
655     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int64_t>::write(*prot_, this->__fbthrift_field_big_int);
656     xfer += prot_->writeFieldEnd();
657   }
658   {
659     constexpr int16_t kPrevFieldId = 5;
660     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_DOUBLE, 6, kPrevFieldId>(*prot_, "real", previousFieldHasValue);
661     previousFieldHasValue = true;
662     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, double>::write(*prot_, this->__fbthrift_field_real);
663     xfer += prot_->writeFieldEnd();
664   }
665   {
666     constexpr int16_t kPrevFieldId = 6;
667     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_FLOAT, 7, kPrevFieldId>(*prot_, "smaller_real", previousFieldHasValue);
668     previousFieldHasValue = true;
669     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::floating_point, float>::write(*prot_, this->__fbthrift_field_smaller_real);
670     xfer += prot_->writeFieldEnd();
671   }
672   {
673     constexpr int16_t kPrevFieldId = 7;
674     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I16, 8, kPrevFieldId>(*prot_, "hidden_field", previousFieldHasValue);
675     previousFieldHasValue = true;
676     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int16_t>::write(*prot_, this->__fbthrift_field_hidden_field);
677     xfer += prot_->writeFieldEnd();
678   }
679   xfer += prot_->writeFieldStop();
680   xfer += prot_->writeStructEnd();
681   return xfer;
682 }
683 
684 extern template void SimpleStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
685 extern template uint32_t SimpleStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
686 extern template uint32_t SimpleStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
687 extern template uint32_t SimpleStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
688 extern template void SimpleStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
689 extern template uint32_t SimpleStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
690 extern template uint32_t SimpleStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
691 extern template uint32_t SimpleStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
692 
693 }} // py3::simple
694 namespace py3 { namespace simple {
695 
696 template <class Protocol_>
readNoXfer(Protocol_ * iprot)697 void ComplexStruct::readNoXfer(Protocol_* iprot) {
698   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
699 
700   _readState.readStructBegin(iprot);
701 
702   using apache::thrift::TProtocolException;
703 
704 
705   if (UNLIKELY(!_readState.advanceToNextField(
706           iprot,
707           0,
708           1,
709           apache::thrift::protocol::T_STRUCT))) {
710     goto _loop;
711   }
712 _readField_structOne:
713   {
714     _readState.beforeSubobject(iprot);
715     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::readWithContext(*iprot, this->__fbthrift_field_structOne, _readState);
716     _readState.afterSubobject(iprot);
717 
718   }
719  this->__isset.set(0, true);
720 
721   if (UNLIKELY(!_readState.advanceToNextField(
722           iprot,
723           1,
724           2,
725           apache::thrift::protocol::T_STRUCT))) {
726     goto _loop;
727   }
728 _readField_structTwo:
729   {
730     _readState.beforeSubobject(iprot);
731     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::readWithContext(*iprot, this->__fbthrift_field_structTwo, _readState);
732     _readState.afterSubobject(iprot);
733 
734   }
735  this->__isset.set(1, true);
736 
737   if (UNLIKELY(!_readState.advanceToNextField(
738           iprot,
739           2,
740           3,
741           apache::thrift::protocol::T_I32))) {
742     goto _loop;
743   }
744 _readField_an_integer:
745   {
746     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_an_integer, _readState);
747 
748   }
749  this->__isset.set(2, true);
750 
751   if (UNLIKELY(!_readState.advanceToNextField(
752           iprot,
753           3,
754           4,
755           apache::thrift::protocol::T_STRING))) {
756     goto _loop;
757   }
758 _readField_name:
759   {
760     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_name, _readState);
761 
762   }
763  this->__isset.set(3, true);
764 
765   if (UNLIKELY(!_readState.advanceToNextField(
766           iprot,
767           4,
768           5,
769           apache::thrift::protocol::T_I32))) {
770     goto _loop;
771   }
772 _readField_an_enum:
773   {
774     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::py3::simple::AnEnum>::readWithContext(*iprot, this->__fbthrift_field_an_enum, _readState);
775 
776   }
777  this->__isset.set(4, true);
778 
779   if (UNLIKELY(!_readState.advanceToNextField(
780           iprot,
781           5,
782           6,
783           apache::thrift::protocol::T_STRING))) {
784     goto _loop;
785   }
786 _readField_some_bytes:
787   {
788     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_some_bytes, _readState);
789 
790   }
791  this->__isset.set(5, true);
792 
793   if (UNLIKELY(!_readState.advanceToNextField(
794           iprot,
795           6,
796           7,
797           apache::thrift::protocol::T_STRING))) {
798     goto _loop;
799   }
800 _readField_from:
801   {
802     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_from, _readState);
803 
804   }
805  this->__isset.set(6, true);
806 
807   if (UNLIKELY(!_readState.advanceToNextField(
808           iprot,
809           7,
810           8,
811           apache::thrift::protocol::T_STRING))) {
812     goto _loop;
813   }
814 _readField_cdef:
815   {
816     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->__fbthrift_field_cdef, _readState);
817 
818   }
819  this->__isset.set(7, true);
820 
821   if (UNLIKELY(!_readState.advanceToNextField(
822           iprot,
823           8,
824           9,
825           apache::thrift::protocol::T_STRING))) {
826     goto _loop;
827   }
828 _readField_bytes_with_cpp_type:
829   {
830     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::foo_bar>::readWithContext(*iprot, this->__fbthrift_field_bytes_with_cpp_type, _readState);
831 
832   }
833  this->__isset.set(8, true);
834 
835   if (UNLIKELY(!_readState.advanceToNextField(
836           iprot,
837           9,
838           0,
839           apache::thrift::protocol::T_STOP))) {
840     goto _loop;
841   }
842 
843 _end:
844   _readState.readStructEnd(iprot);
845 
846   return;
847 
848 _loop:
849   _readState.afterAdvanceFailure(iprot);
850   if (_readState.atStop()) {
851     goto _end;
852   }
853   if (iprot->kUsesFieldNames()) {
854     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<ComplexStruct>>();
855   }
856 
857   switch (_readState.fieldId) {
858     case 1:
859     {
860       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
861         goto _readField_structOne;
862       } else {
863         goto _skip;
864       }
865     }
866     case 2:
867     {
868       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
869         goto _readField_structTwo;
870       } else {
871         goto _skip;
872       }
873     }
874     case 3:
875     {
876       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
877         goto _readField_an_integer;
878       } else {
879         goto _skip;
880       }
881     }
882     case 4:
883     {
884       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
885         goto _readField_name;
886       } else {
887         goto _skip;
888       }
889     }
890     case 5:
891     {
892       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
893         goto _readField_an_enum;
894       } else {
895         goto _skip;
896       }
897     }
898     case 6:
899     {
900       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
901         goto _readField_some_bytes;
902       } else {
903         goto _skip;
904       }
905     }
906     case 7:
907     {
908       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
909         goto _readField_from;
910       } else {
911         goto _skip;
912       }
913     }
914     case 8:
915     {
916       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
917         goto _readField_cdef;
918       } else {
919         goto _skip;
920       }
921     }
922     case 9:
923     {
924       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
925         goto _readField_bytes_with_cpp_type;
926       } else {
927         goto _skip;
928       }
929     }
930     default:
931     {
932 _skip:
933       _readState.skip(iprot);
934       _readState.readFieldEnd(iprot);
935       _readState.readFieldBeginNoInline(iprot);
936       goto _loop;
937     }
938   }
939 }
940 
941 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const942 uint32_t ComplexStruct::serializedSize(Protocol_ const* prot_) const {
943   uint32_t xfer = 0;
944   xfer += prot_->serializedStructSize("ComplexStruct");
945   {
946     xfer += prot_->serializedFieldSize("structOne", apache::thrift::protocol::T_STRUCT, 1);
947     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::serializedSize<false>(*prot_, this->__fbthrift_field_structOne);
948   }
949   {
950     xfer += prot_->serializedFieldSize("structTwo", apache::thrift::protocol::T_STRUCT, 2);
951     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::serializedSize<false>(*prot_, this->__fbthrift_field_structTwo);
952   }
953   {
954     xfer += prot_->serializedFieldSize("an_integer", apache::thrift::protocol::T_I32, 3);
955     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_an_integer);
956   }
957   {
958     xfer += prot_->serializedFieldSize("name", apache::thrift::protocol::T_STRING, 4);
959     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_name);
960   }
961   {
962     xfer += prot_->serializedFieldSize("an_enum", apache::thrift::protocol::T_I32, 5);
963     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::py3::simple::AnEnum>::serializedSize<false>(*prot_, this->__fbthrift_field_an_enum);
964   }
965   {
966     xfer += prot_->serializedFieldSize("some_bytes", apache::thrift::protocol::T_STRING, 6);
967     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_some_bytes);
968   }
969   {
970     xfer += prot_->serializedFieldSize("from", apache::thrift::protocol::T_STRING, 7);
971     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_from);
972   }
973   {
974     xfer += prot_->serializedFieldSize("cdef", apache::thrift::protocol::T_STRING, 8);
975     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_cdef);
976   }
977   {
978     xfer += prot_->serializedFieldSize("bytes_with_cpp_type", apache::thrift::protocol::T_STRING, 9);
979     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::foo_bar>::serializedSize<false>(*prot_, this->__fbthrift_field_bytes_with_cpp_type);
980   }
981   xfer += prot_->serializedSizeStop();
982   return xfer;
983 }
984 
985 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const986 uint32_t ComplexStruct::serializedSizeZC(Protocol_ const* prot_) const {
987   uint32_t xfer = 0;
988   xfer += prot_->serializedStructSize("ComplexStruct");
989   {
990     xfer += prot_->serializedFieldSize("structOne", apache::thrift::protocol::T_STRUCT, 1);
991     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::serializedSize<true>(*prot_, this->__fbthrift_field_structOne);
992   }
993   {
994     xfer += prot_->serializedFieldSize("structTwo", apache::thrift::protocol::T_STRUCT, 2);
995     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::serializedSize<true>(*prot_, this->__fbthrift_field_structTwo);
996   }
997   {
998     xfer += prot_->serializedFieldSize("an_integer", apache::thrift::protocol::T_I32, 3);
999     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_an_integer);
1000   }
1001   {
1002     xfer += prot_->serializedFieldSize("name", apache::thrift::protocol::T_STRING, 4);
1003     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_name);
1004   }
1005   {
1006     xfer += prot_->serializedFieldSize("an_enum", apache::thrift::protocol::T_I32, 5);
1007     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::py3::simple::AnEnum>::serializedSize<false>(*prot_, this->__fbthrift_field_an_enum);
1008   }
1009   {
1010     xfer += prot_->serializedFieldSize("some_bytes", apache::thrift::protocol::T_STRING, 6);
1011     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::serializedSize<true>(*prot_, this->__fbthrift_field_some_bytes);
1012   }
1013   {
1014     xfer += prot_->serializedFieldSize("from", apache::thrift::protocol::T_STRING, 7);
1015     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_from);
1016   }
1017   {
1018     xfer += prot_->serializedFieldSize("cdef", apache::thrift::protocol::T_STRING, 8);
1019     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->__fbthrift_field_cdef);
1020   }
1021   {
1022     xfer += prot_->serializedFieldSize("bytes_with_cpp_type", apache::thrift::protocol::T_STRING, 9);
1023     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::foo_bar>::serializedSize<true>(*prot_, this->__fbthrift_field_bytes_with_cpp_type);
1024   }
1025   xfer += prot_->serializedSizeStop();
1026   return xfer;
1027 }
1028 
1029 template <class Protocol_>
write(Protocol_ * prot_) const1030 uint32_t ComplexStruct::write(Protocol_* prot_) const {
1031   uint32_t xfer = 0;
1032   xfer += prot_->writeStructBegin("ComplexStruct");
1033   bool previousFieldHasValue = true;
1034   {
1035     constexpr int16_t kPrevFieldId = 0;
1036     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "structOne", previousFieldHasValue);
1037     previousFieldHasValue = true;
1038     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::write(*prot_, this->__fbthrift_field_structOne);
1039     xfer += prot_->writeFieldEnd();
1040   }
1041   {
1042     constexpr int16_t kPrevFieldId = 1;
1043     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "structTwo", previousFieldHasValue);
1044     previousFieldHasValue = true;
1045     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::py3::simple::SimpleStruct>::write(*prot_, this->__fbthrift_field_structTwo);
1046     xfer += prot_->writeFieldEnd();
1047   }
1048   {
1049     constexpr int16_t kPrevFieldId = 2;
1050     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 3, kPrevFieldId>(*prot_, "an_integer", previousFieldHasValue);
1051     previousFieldHasValue = true;
1052     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_an_integer);
1053     xfer += prot_->writeFieldEnd();
1054   }
1055   {
1056     constexpr int16_t kPrevFieldId = 3;
1057     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 4, kPrevFieldId>(*prot_, "name", previousFieldHasValue);
1058     previousFieldHasValue = true;
1059     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_name);
1060     xfer += prot_->writeFieldEnd();
1061   }
1062   {
1063     constexpr int16_t kPrevFieldId = 4;
1064     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 5, kPrevFieldId>(*prot_, "an_enum", previousFieldHasValue);
1065     previousFieldHasValue = true;
1066     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::enumeration, ::py3::simple::AnEnum>::write(*prot_, this->__fbthrift_field_an_enum);
1067     xfer += prot_->writeFieldEnd();
1068   }
1069   {
1070     constexpr int16_t kPrevFieldId = 5;
1071     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 6, kPrevFieldId>(*prot_, "some_bytes", previousFieldHasValue);
1072     previousFieldHasValue = true;
1073     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::std::string>::write(*prot_, this->__fbthrift_field_some_bytes);
1074     xfer += prot_->writeFieldEnd();
1075   }
1076   {
1077     constexpr int16_t kPrevFieldId = 6;
1078     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 7, kPrevFieldId>(*prot_, "from", previousFieldHasValue);
1079     previousFieldHasValue = true;
1080     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_from);
1081     xfer += prot_->writeFieldEnd();
1082   }
1083   {
1084     constexpr int16_t kPrevFieldId = 7;
1085     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 8, kPrevFieldId>(*prot_, "cdef", previousFieldHasValue);
1086     previousFieldHasValue = true;
1087     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->__fbthrift_field_cdef);
1088     xfer += prot_->writeFieldEnd();
1089   }
1090   {
1091     constexpr int16_t kPrevFieldId = 8;
1092     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 9, kPrevFieldId>(*prot_, "bytes_with_cpp_type", previousFieldHasValue);
1093     previousFieldHasValue = true;
1094     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::foo_bar>::write(*prot_, this->__fbthrift_field_bytes_with_cpp_type);
1095     xfer += prot_->writeFieldEnd();
1096   }
1097   xfer += prot_->writeFieldStop();
1098   xfer += prot_->writeStructEnd();
1099   return xfer;
1100 }
1101 
1102 extern template void ComplexStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1103 extern template uint32_t ComplexStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
1104 extern template uint32_t ComplexStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1105 extern template uint32_t ComplexStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1106 extern template void ComplexStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1107 extern template uint32_t ComplexStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
1108 extern template uint32_t ComplexStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1109 extern template uint32_t ComplexStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1110 
1111 }} // py3::simple
1112 namespace py3 { namespace simple {
1113 
1114 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1115 void BinaryUnion::readNoXfer(Protocol_* iprot) {
1116   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1117   _readState.fieldId = 0;
1118 
1119   _readState.readStructBegin(iprot);
1120 
1121   _readState.readFieldBegin(iprot);
1122   if (_readState.atStop()) {
1123     apache::thrift::clear(*this);
1124   } else {
1125     if (iprot->kUsesFieldNames()) {
1126       _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<BinaryUnion>>();
1127     }
1128     switch (_readState.fieldId) {
1129       case 1:
1130       {
1131         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING)) {
1132           this->set_iobuf_val();
1133           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBuf>::readWithContext(*iprot, value_.iobuf_val, _readState);
1134 
1135         } else {
1136           _readState.skip(iprot);
1137         }
1138         break;
1139       }
1140       default:
1141       {
1142         _readState.skip(iprot);
1143         break;
1144       }
1145     }
1146     _readState.readFieldEnd(iprot);
1147     _readState.readFieldBegin(iprot);
1148     if (UNLIKELY(!_readState.atStop())) {
1149       using apache::thrift::protocol::TProtocolException;
1150       TProtocolException::throwUnionMissingStop();
1151     }
1152   }
1153   _readState.readStructEnd(iprot);
1154 }
1155 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1156 uint32_t BinaryUnion::serializedSize(Protocol_ const* prot_) const {
1157   uint32_t xfer = 0;
1158   xfer += prot_->serializedStructSize("BinaryUnion");
1159   switch(this->getType()) {
1160     case BinaryUnion::Type::iobuf_val:
1161     {
1162       xfer += prot_->serializedFieldSize("iobuf_val", apache::thrift::protocol::T_STRING, 1);
1163       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBuf>::serializedSize<false>(*prot_, value_.iobuf_val);
1164       break;
1165     }
1166     case BinaryUnion::Type::__EMPTY__:;
1167   }
1168   xfer += prot_->serializedSizeStop();
1169   return xfer;
1170 }
1171 
1172 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1173 uint32_t BinaryUnion::serializedSizeZC(Protocol_ const* prot_) const {
1174   uint32_t xfer = 0;
1175   xfer += prot_->serializedStructSize("BinaryUnion");
1176   switch(this->getType()) {
1177     case BinaryUnion::Type::iobuf_val:
1178     {
1179       xfer += prot_->serializedFieldSize("iobuf_val", apache::thrift::protocol::T_STRING, 1);
1180       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBuf>::serializedSize<true>(*prot_, value_.iobuf_val);
1181       break;
1182     }
1183     case BinaryUnion::Type::__EMPTY__:;
1184   }
1185   xfer += prot_->serializedSizeStop();
1186   return xfer;
1187 }
1188 
1189 template <class Protocol_>
write(Protocol_ * prot_) const1190 uint32_t BinaryUnion::write(Protocol_* prot_) const {
1191   uint32_t xfer = 0;
1192   xfer += prot_->writeStructBegin("BinaryUnion");
1193   switch(this->getType()) {
1194     case BinaryUnion::Type::iobuf_val:
1195     {
1196       constexpr int16_t kPrevFieldId = 0;
1197       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "iobuf_val", false);
1198       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::py3::simple::IOBuf>::write(*prot_, value_.iobuf_val);
1199       xfer += prot_->writeFieldEnd();
1200       break;
1201     }
1202     case BinaryUnion::Type::__EMPTY__:;
1203   }
1204   xfer += prot_->writeFieldStop();
1205   xfer += prot_->writeStructEnd();
1206   return xfer;
1207 }
1208 
1209 extern template void BinaryUnion::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1210 extern template uint32_t BinaryUnion::write<>(apache::thrift::BinaryProtocolWriter*) const;
1211 extern template uint32_t BinaryUnion::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1212 extern template uint32_t BinaryUnion::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1213 extern template void BinaryUnion::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1214 extern template uint32_t BinaryUnion::write<>(apache::thrift::CompactProtocolWriter*) const;
1215 extern template uint32_t BinaryUnion::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1216 extern template uint32_t BinaryUnion::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1217 
1218 }} // py3::simple
1219 namespace py3 { namespace simple {
1220 
1221 template <class Protocol_>
readNoXfer(Protocol_ * iprot)1222 void BinaryUnionStruct::readNoXfer(Protocol_* iprot) {
1223   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
1224 
1225   _readState.readStructBegin(iprot);
1226 
1227   using apache::thrift::TProtocolException;
1228 
1229 
1230   if (UNLIKELY(!_readState.advanceToNextField(
1231           iprot,
1232           0,
1233           1,
1234           apache::thrift::protocol::T_STRUCT))) {
1235     goto _loop;
1236   }
1237 _readField_u:
1238   {
1239     _readState.beforeSubobject(iprot);
1240     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::py3::simple::BinaryUnion>::readWithContext(*iprot, this->__fbthrift_field_u, _readState);
1241     _readState.afterSubobject(iprot);
1242 
1243   }
1244  this->__isset.set(0, true);
1245 
1246   if (UNLIKELY(!_readState.advanceToNextField(
1247           iprot,
1248           1,
1249           0,
1250           apache::thrift::protocol::T_STOP))) {
1251     goto _loop;
1252   }
1253 
1254 _end:
1255   _readState.readStructEnd(iprot);
1256 
1257   return;
1258 
1259 _loop:
1260   _readState.afterAdvanceFailure(iprot);
1261   if (_readState.atStop()) {
1262     goto _end;
1263   }
1264   if (iprot->kUsesFieldNames()) {
1265     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<BinaryUnionStruct>>();
1266   }
1267 
1268   switch (_readState.fieldId) {
1269     case 1:
1270     {
1271       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
1272         goto _readField_u;
1273       } else {
1274         goto _skip;
1275       }
1276     }
1277     default:
1278     {
1279 _skip:
1280       _readState.skip(iprot);
1281       _readState.readFieldEnd(iprot);
1282       _readState.readFieldBeginNoInline(iprot);
1283       goto _loop;
1284     }
1285   }
1286 }
1287 
1288 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const1289 uint32_t BinaryUnionStruct::serializedSize(Protocol_ const* prot_) const {
1290   uint32_t xfer = 0;
1291   xfer += prot_->serializedStructSize("BinaryUnionStruct");
1292   {
1293     xfer += prot_->serializedFieldSize("u", apache::thrift::protocol::T_STRUCT, 1);
1294     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::py3::simple::BinaryUnion>::serializedSize<false>(*prot_, this->__fbthrift_field_u);
1295   }
1296   xfer += prot_->serializedSizeStop();
1297   return xfer;
1298 }
1299 
1300 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const1301 uint32_t BinaryUnionStruct::serializedSizeZC(Protocol_ const* prot_) const {
1302   uint32_t xfer = 0;
1303   xfer += prot_->serializedStructSize("BinaryUnionStruct");
1304   {
1305     xfer += prot_->serializedFieldSize("u", apache::thrift::protocol::T_STRUCT, 1);
1306     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::py3::simple::BinaryUnion>::serializedSize<true>(*prot_, this->__fbthrift_field_u);
1307   }
1308   xfer += prot_->serializedSizeStop();
1309   return xfer;
1310 }
1311 
1312 template <class Protocol_>
write(Protocol_ * prot_) const1313 uint32_t BinaryUnionStruct::write(Protocol_* prot_) const {
1314   uint32_t xfer = 0;
1315   xfer += prot_->writeStructBegin("BinaryUnionStruct");
1316   bool previousFieldHasValue = true;
1317   {
1318     constexpr int16_t kPrevFieldId = 0;
1319     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "u", previousFieldHasValue);
1320     previousFieldHasValue = true;
1321     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::py3::simple::BinaryUnion>::write(*prot_, this->__fbthrift_field_u);
1322     xfer += prot_->writeFieldEnd();
1323   }
1324   xfer += prot_->writeFieldStop();
1325   xfer += prot_->writeStructEnd();
1326   return xfer;
1327 }
1328 
1329 extern template void BinaryUnionStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
1330 extern template uint32_t BinaryUnionStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
1331 extern template uint32_t BinaryUnionStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
1332 extern template uint32_t BinaryUnionStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
1333 extern template void BinaryUnionStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
1334 extern template uint32_t BinaryUnionStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
1335 extern template uint32_t BinaryUnionStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
1336 extern template uint32_t BinaryUnionStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
1337 
1338 }} // py3::simple
1339