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/doctext/gen-cpp2/module_types.h"
10 
11 #include <thrift/lib/cpp2/gen/module_types_tcc.h>
12 
13 namespace cpp2 {
14 
15 } // cpp2
16 namespace std {
17 
18 } // std
19 
20 
21 namespace apache {
22 namespace thrift {
23 namespace detail {
24 
25 template <>
26 struct TccStructTraits<::cpp2::A> {
27   static void translateFieldName(
28       folly::StringPiece _fname,
29       int16_t& fid,
30       apache::thrift::protocol::TType& _ftype) noexcept;
31 };
32 template <>
33 struct TccStructTraits<::cpp2::U> {
34   static void translateFieldName(
35       folly::StringPiece _fname,
36       int16_t& fid,
37       apache::thrift::protocol::TType& _ftype) noexcept;
38 };
39 template <>
40 struct TccStructTraits<::cpp2::Bang> {
41   static void translateFieldName(
42       folly::StringPiece _fname,
43       int16_t& fid,
44       apache::thrift::protocol::TType& _ftype) noexcept;
45 };
46 
47 } // namespace detail
48 } // namespace thrift
49 } // namespace apache
50 
51 namespace cpp2 {
52 
53 template <class Protocol_>
readNoXfer(Protocol_ * iprot)54 void A::readNoXfer(Protocol_* iprot) {
55   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
56 
57   _readState.readStructBegin(iprot);
58 
59   using apache::thrift::TProtocolException;
60 
61 
62   if (UNLIKELY(!_readState.advanceToNextField(
63           iprot,
64           0,
65           1,
66           apache::thrift::protocol::T_I32))) {
67     goto _loop;
68   }
69 _readField_useless_field:
70   {
71     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, this->__fbthrift_field_useless_field, _readState);
72 
73   }
74  this->__isset.set(0, true);
75 
76   if (UNLIKELY(!_readState.advanceToNextField(
77           iprot,
78           1,
79           0,
80           apache::thrift::protocol::T_STOP))) {
81     goto _loop;
82   }
83 
84 _end:
85   _readState.readStructEnd(iprot);
86 
87   return;
88 
89 _loop:
90   _readState.afterAdvanceFailure(iprot);
91   if (_readState.atStop()) {
92     goto _end;
93   }
94   if (iprot->kUsesFieldNames()) {
95     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<A>>();
96   }
97 
98   switch (_readState.fieldId) {
99     case 1:
100     {
101       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32))) {
102         goto _readField_useless_field;
103       } else {
104         goto _skip;
105       }
106     }
107     default:
108     {
109 _skip:
110       _readState.skip(iprot);
111       _readState.readFieldEnd(iprot);
112       _readState.readFieldBeginNoInline(iprot);
113       goto _loop;
114     }
115   }
116 }
117 
118 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const119 uint32_t A::serializedSize(Protocol_ const* prot_) const {
120   uint32_t xfer = 0;
121   xfer += prot_->serializedStructSize("A");
122   {
123     xfer += prot_->serializedFieldSize("useless_field", apache::thrift::protocol::T_I32, 1);
124     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_useless_field);
125   }
126   xfer += prot_->serializedSizeStop();
127   return xfer;
128 }
129 
130 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const131 uint32_t A::serializedSizeZC(Protocol_ const* prot_) const {
132   uint32_t xfer = 0;
133   xfer += prot_->serializedStructSize("A");
134   {
135     xfer += prot_->serializedFieldSize("useless_field", apache::thrift::protocol::T_I32, 1);
136     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, this->__fbthrift_field_useless_field);
137   }
138   xfer += prot_->serializedSizeStop();
139   return xfer;
140 }
141 
142 template <class Protocol_>
write(Protocol_ * prot_) const143 uint32_t A::write(Protocol_* prot_) const {
144   uint32_t xfer = 0;
145   xfer += prot_->writeStructBegin("A");
146   bool previousFieldHasValue = true;
147   {
148     constexpr int16_t kPrevFieldId = 0;
149     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "useless_field", previousFieldHasValue);
150     previousFieldHasValue = true;
151     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, this->__fbthrift_field_useless_field);
152     xfer += prot_->writeFieldEnd();
153   }
154   xfer += prot_->writeFieldStop();
155   xfer += prot_->writeStructEnd();
156   return xfer;
157 }
158 
159 extern template void A::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
160 extern template uint32_t A::write<>(apache::thrift::BinaryProtocolWriter*) const;
161 extern template uint32_t A::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
162 extern template uint32_t A::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
163 extern template void A::readNoXfer<>(apache::thrift::CompactProtocolReader*);
164 extern template uint32_t A::write<>(apache::thrift::CompactProtocolWriter*) const;
165 extern template uint32_t A::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
166 extern template uint32_t A::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
167 
168 } // cpp2
169 namespace cpp2 {
170 
171 template <class Protocol_>
readNoXfer(Protocol_ * iprot)172 void U::readNoXfer(Protocol_* iprot) {
173   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
174   _readState.fieldId = 0;
175 
176   _readState.readStructBegin(iprot);
177 
178   _readState.readFieldBegin(iprot);
179   if (_readState.atStop()) {
180     apache::thrift::clear(*this);
181   } else {
182     if (iprot->kUsesFieldNames()) {
183       _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<U>>();
184     }
185     switch (_readState.fieldId) {
186       case 1:
187       {
188         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_I32)) {
189           this->set_i();
190           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::readWithContext(*iprot, value_.i, _readState);
191 
192         } else {
193           _readState.skip(iprot);
194         }
195         break;
196       }
197       case 2:
198       {
199         if (_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING)) {
200           this->set_s();
201           ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, value_.s, _readState);
202 
203         } else {
204           _readState.skip(iprot);
205         }
206         break;
207       }
208       default:
209       {
210         _readState.skip(iprot);
211         break;
212       }
213     }
214     _readState.readFieldEnd(iprot);
215     _readState.readFieldBegin(iprot);
216     if (UNLIKELY(!_readState.atStop())) {
217       using apache::thrift::protocol::TProtocolException;
218       TProtocolException::throwUnionMissingStop();
219     }
220   }
221   _readState.readStructEnd(iprot);
222 }
223 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const224 uint32_t U::serializedSize(Protocol_ const* prot_) const {
225   uint32_t xfer = 0;
226   xfer += prot_->serializedStructSize("U");
227   switch(this->getType()) {
228     case U::Type::i:
229     {
230       xfer += prot_->serializedFieldSize("i", apache::thrift::protocol::T_I32, 1);
231       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, value_.i);
232       break;
233     }
234     case U::Type::s:
235     {
236       xfer += prot_->serializedFieldSize("s", apache::thrift::protocol::T_STRING, 2);
237       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, value_.s);
238       break;
239     }
240     case U::Type::__EMPTY__:;
241   }
242   xfer += prot_->serializedSizeStop();
243   return xfer;
244 }
245 
246 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const247 uint32_t U::serializedSizeZC(Protocol_ const* prot_) const {
248   uint32_t xfer = 0;
249   xfer += prot_->serializedStructSize("U");
250   switch(this->getType()) {
251     case U::Type::i:
252     {
253       xfer += prot_->serializedFieldSize("i", apache::thrift::protocol::T_I32, 1);
254       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::serializedSize<false>(*prot_, value_.i);
255       break;
256     }
257     case U::Type::s:
258     {
259       xfer += prot_->serializedFieldSize("s", apache::thrift::protocol::T_STRING, 2);
260       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, value_.s);
261       break;
262     }
263     case U::Type::__EMPTY__:;
264   }
265   xfer += prot_->serializedSizeStop();
266   return xfer;
267 }
268 
269 template <class Protocol_>
write(Protocol_ * prot_) const270 uint32_t U::write(Protocol_* prot_) const {
271   uint32_t xfer = 0;
272   xfer += prot_->writeStructBegin("U");
273   switch(this->getType()) {
274     case U::Type::i:
275     {
276       constexpr int16_t kPrevFieldId = 0;
277       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_I32, 1, kPrevFieldId>(*prot_, "i", false);
278       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::integral, ::std::int32_t>::write(*prot_, value_.i);
279       xfer += prot_->writeFieldEnd();
280       break;
281     }
282     case U::Type::s:
283     {
284       constexpr int16_t kPrevFieldId = 1;
285       xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 2, kPrevFieldId>(*prot_, "s", false);
286       xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, value_.s);
287       xfer += prot_->writeFieldEnd();
288       break;
289     }
290     case U::Type::__EMPTY__:;
291   }
292   xfer += prot_->writeFieldStop();
293   xfer += prot_->writeStructEnd();
294   return xfer;
295 }
296 
297 extern template void U::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
298 extern template uint32_t U::write<>(apache::thrift::BinaryProtocolWriter*) const;
299 extern template uint32_t U::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
300 extern template uint32_t U::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
301 extern template void U::readNoXfer<>(apache::thrift::CompactProtocolReader*);
302 extern template uint32_t U::write<>(apache::thrift::CompactProtocolWriter*) const;
303 extern template uint32_t U::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
304 extern template uint32_t U::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
305 
306 } // cpp2
307 namespace cpp2 {
308 
309 template <class Protocol_>
readNoXfer(Protocol_ * iprot)310 void Bang::readNoXfer(Protocol_* iprot) {
311   apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;
312 
313   _readState.readStructBegin(iprot);
314 
315   using apache::thrift::TProtocolException;
316 
317 
318   if (UNLIKELY(!_readState.advanceToNextField(
319           iprot,
320           0,
321           1,
322           apache::thrift::protocol::T_STRING))) {
323     goto _loop;
324   }
325 _readField_message:
326   {
327     ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::readWithContext(*iprot, this->message, _readState);
328 
329   }
330  this->__isset.set(0, true);
331 
332   if (UNLIKELY(!_readState.advanceToNextField(
333           iprot,
334           1,
335           0,
336           apache::thrift::protocol::T_STOP))) {
337     goto _loop;
338   }
339 
340 _end:
341   _readState.readStructEnd(iprot);
342 
343   return;
344 
345 _loop:
346   _readState.afterAdvanceFailure(iprot);
347   if (_readState.atStop()) {
348     goto _end;
349   }
350   if (iprot->kUsesFieldNames()) {
351     _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<Bang>>();
352   }
353 
354   switch (_readState.fieldId) {
355     case 1:
356     {
357       if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
358         goto _readField_message;
359       } else {
360         goto _skip;
361       }
362     }
363     default:
364     {
365 _skip:
366       _readState.skip(iprot);
367       _readState.readFieldEnd(iprot);
368       _readState.readFieldBeginNoInline(iprot);
369       goto _loop;
370     }
371   }
372 }
373 
374 template <class Protocol_>
serializedSize(Protocol_ const * prot_) const375 uint32_t Bang::serializedSize(Protocol_ const* prot_) const {
376   uint32_t xfer = 0;
377   xfer += prot_->serializedStructSize("Bang");
378   {
379     xfer += prot_->serializedFieldSize("message", apache::thrift::protocol::T_STRING, 1);
380     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->message);
381   }
382   xfer += prot_->serializedSizeStop();
383   return xfer;
384 }
385 
386 template <class Protocol_>
serializedSizeZC(Protocol_ const * prot_) const387 uint32_t Bang::serializedSizeZC(Protocol_ const* prot_) const {
388   uint32_t xfer = 0;
389   xfer += prot_->serializedStructSize("Bang");
390   {
391     xfer += prot_->serializedFieldSize("message", apache::thrift::protocol::T_STRING, 1);
392     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::serializedSize<false>(*prot_, this->message);
393   }
394   xfer += prot_->serializedSizeStop();
395   return xfer;
396 }
397 
398 template <class Protocol_>
write(Protocol_ * prot_) const399 uint32_t Bang::write(Protocol_* prot_) const {
400   uint32_t xfer = 0;
401   xfer += prot_->writeStructBegin("Bang");
402   bool previousFieldHasValue = true;
403   {
404     constexpr int16_t kPrevFieldId = 0;
405     xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 1, kPrevFieldId>(*prot_, "message", previousFieldHasValue);
406     previousFieldHasValue = true;
407     xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::string, ::std::string>::write(*prot_, this->message);
408     xfer += prot_->writeFieldEnd();
409   }
410   xfer += prot_->writeFieldStop();
411   xfer += prot_->writeStructEnd();
412   return xfer;
413 }
414 
415 extern template void Bang::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
416 extern template uint32_t Bang::write<>(apache::thrift::BinaryProtocolWriter*) const;
417 extern template uint32_t Bang::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
418 extern template uint32_t Bang::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
419 extern template void Bang::readNoXfer<>(apache::thrift::CompactProtocolReader*);
420 extern template uint32_t Bang::write<>(apache::thrift::CompactProtocolWriter*) const;
421 extern template uint32_t Bang::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
422 extern template uint32_t Bang::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;
423 
424 } // cpp2
425