1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_ENTITYDATA_LIBTEXTCLASSIFIER3_H_
5 #define FLATBUFFERS_GENERATED_ENTITYDATA_LIBTEXTCLASSIFIER3_H_
6 
7 #include "flatbuffers/flatbuffers.h"
8 
9 // Ensure the included flatbuffers.h is the same version as when this file was
10 // generated, otherwise it may not be compatible.
11 static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
12               FLATBUFFERS_VERSION_MINOR == 0 &&
13               FLATBUFFERS_VERSION_REVISION == 7,
14              "Non-compatible flatbuffers version included");
15 
16 namespace libtextclassifier3 {
17 namespace EntityData_ {
18 namespace Datetime_ {
19 
20 struct DatetimeComponent;
21 struct DatetimeComponentBuilder;
22 struct DatetimeComponentT;
23 
24 }  // namespace Datetime_
25 
26 struct Datetime;
27 struct DatetimeBuilder;
28 struct DatetimeT;
29 
30 namespace Contact_ {
31 
32 struct AlternativeNameInfo;
33 struct AlternativeNameInfoBuilder;
34 struct AlternativeNameInfoT;
35 
36 }  // namespace Contact_
37 
38 struct Contact;
39 struct ContactBuilder;
40 struct ContactT;
41 
42 struct App;
43 struct AppBuilder;
44 struct AppT;
45 
46 struct PaymentCard;
47 struct PaymentCardBuilder;
48 struct PaymentCardT;
49 
50 struct Flight;
51 struct FlightBuilder;
52 struct FlightT;
53 
54 struct Isbn;
55 struct IsbnBuilder;
56 struct IsbnT;
57 
58 struct Iban;
59 struct IbanBuilder;
60 struct IbanT;
61 
62 struct ParcelTracking;
63 struct ParcelTrackingBuilder;
64 struct ParcelTrackingT;
65 
66 struct Money;
67 struct MoneyBuilder;
68 struct MoneyT;
69 
70 namespace Translate_ {
71 
72 struct LanguagePredictionResult;
73 struct LanguagePredictionResultBuilder;
74 struct LanguagePredictionResultT;
75 
76 }  // namespace Translate_
77 
78 struct Translate;
79 struct TranslateBuilder;
80 struct TranslateT;
81 
82 }  // namespace EntityData_
83 
84 struct EntityData;
85 struct EntityDataBuilder;
86 struct EntityDataT;
87 
88 namespace EntityData_ {
89 namespace Datetime_ {
90 
91 enum Granularity : int32_t {
92   Granularity_GRANULARITY_UNKNOWN = -1,
93   Granularity_GRANULARITY_YEAR = 0,
94   Granularity_GRANULARITY_MONTH = 1,
95   Granularity_GRANULARITY_WEEK = 2,
96   Granularity_GRANULARITY_DAY = 3,
97   Granularity_GRANULARITY_HOUR = 4,
98   Granularity_GRANULARITY_MINUTE = 5,
99   Granularity_GRANULARITY_SECOND = 6,
100   Granularity_MIN = Granularity_GRANULARITY_UNKNOWN,
101   Granularity_MAX = Granularity_GRANULARITY_SECOND
102 };
103 
EnumValuesGranularity()104 inline const Granularity (&EnumValuesGranularity())[8] {
105   static const Granularity values[] = {
106     Granularity_GRANULARITY_UNKNOWN,
107     Granularity_GRANULARITY_YEAR,
108     Granularity_GRANULARITY_MONTH,
109     Granularity_GRANULARITY_WEEK,
110     Granularity_GRANULARITY_DAY,
111     Granularity_GRANULARITY_HOUR,
112     Granularity_GRANULARITY_MINUTE,
113     Granularity_GRANULARITY_SECOND
114   };
115   return values;
116 }
117 
EnumNamesGranularity()118 inline const char * const *EnumNamesGranularity() {
119   static const char * const names[9] = {
120     "GRANULARITY_UNKNOWN",
121     "GRANULARITY_YEAR",
122     "GRANULARITY_MONTH",
123     "GRANULARITY_WEEK",
124     "GRANULARITY_DAY",
125     "GRANULARITY_HOUR",
126     "GRANULARITY_MINUTE",
127     "GRANULARITY_SECOND",
128     nullptr
129   };
130   return names;
131 }
132 
EnumNameGranularity(Granularity e)133 inline const char *EnumNameGranularity(Granularity e) {
134   if (flatbuffers::IsOutRange(e, Granularity_GRANULARITY_UNKNOWN, Granularity_GRANULARITY_SECOND)) return "";
135   const size_t index = static_cast<size_t>(e) - static_cast<size_t>(Granularity_GRANULARITY_UNKNOWN);
136   return EnumNamesGranularity()[index];
137 }
138 
139 namespace DatetimeComponent_ {
140 
141 enum ComponentType : int32_t {
142   ComponentType_UNSPECIFIED = 0,
143   ComponentType_YEAR = 1,
144   ComponentType_MONTH = 2,
145   ComponentType_WEEK = 3,
146   ComponentType_DAY_OF_WEEK = 4,
147   ComponentType_DAY_OF_MONTH = 5,
148   ComponentType_HOUR = 6,
149   ComponentType_MINUTE = 7,
150   ComponentType_SECOND = 8,
151   ComponentType_MERIDIEM = 9,
152   ComponentType_ZONE_OFFSET = 10,
153   ComponentType_DST_OFFSET = 11,
154   ComponentType_MIN = ComponentType_UNSPECIFIED,
155   ComponentType_MAX = ComponentType_DST_OFFSET
156 };
157 
EnumValuesComponentType()158 inline const ComponentType (&EnumValuesComponentType())[12] {
159   static const ComponentType values[] = {
160     ComponentType_UNSPECIFIED,
161     ComponentType_YEAR,
162     ComponentType_MONTH,
163     ComponentType_WEEK,
164     ComponentType_DAY_OF_WEEK,
165     ComponentType_DAY_OF_MONTH,
166     ComponentType_HOUR,
167     ComponentType_MINUTE,
168     ComponentType_SECOND,
169     ComponentType_MERIDIEM,
170     ComponentType_ZONE_OFFSET,
171     ComponentType_DST_OFFSET
172   };
173   return values;
174 }
175 
EnumNamesComponentType()176 inline const char * const *EnumNamesComponentType() {
177   static const char * const names[13] = {
178     "UNSPECIFIED",
179     "YEAR",
180     "MONTH",
181     "WEEK",
182     "DAY_OF_WEEK",
183     "DAY_OF_MONTH",
184     "HOUR",
185     "MINUTE",
186     "SECOND",
187     "MERIDIEM",
188     "ZONE_OFFSET",
189     "DST_OFFSET",
190     nullptr
191   };
192   return names;
193 }
194 
EnumNameComponentType(ComponentType e)195 inline const char *EnumNameComponentType(ComponentType e) {
196   if (flatbuffers::IsOutRange(e, ComponentType_UNSPECIFIED, ComponentType_DST_OFFSET)) return "";
197   const size_t index = static_cast<size_t>(e);
198   return EnumNamesComponentType()[index];
199 }
200 
201 enum RelationType : int32_t {
202   RelationType_RELATION_UNSPECIFIED = 0,
203   RelationType_ABSOLUTE = 1,
204   RelationType_RELATIVE = 2,
205   RelationType_MIN = RelationType_RELATION_UNSPECIFIED,
206   RelationType_MAX = RelationType_RELATIVE
207 };
208 
EnumValuesRelationType()209 inline const RelationType (&EnumValuesRelationType())[3] {
210   static const RelationType values[] = {
211     RelationType_RELATION_UNSPECIFIED,
212     RelationType_ABSOLUTE,
213     RelationType_RELATIVE
214   };
215   return values;
216 }
217 
EnumNamesRelationType()218 inline const char * const *EnumNamesRelationType() {
219   static const char * const names[4] = {
220     "RELATION_UNSPECIFIED",
221     "ABSOLUTE",
222     "RELATIVE",
223     nullptr
224   };
225   return names;
226 }
227 
EnumNameRelationType(RelationType e)228 inline const char *EnumNameRelationType(RelationType e) {
229   if (flatbuffers::IsOutRange(e, RelationType_RELATION_UNSPECIFIED, RelationType_RELATIVE)) return "";
230   const size_t index = static_cast<size_t>(e);
231   return EnumNamesRelationType()[index];
232 }
233 
234 }  // namespace DatetimeComponent_
235 }  // namespace Datetime_
236 
237 namespace Contact_ {
238 namespace AlternativeNameInfo_ {
239 
240 enum AlternativeNameSource : int32_t {
241   AlternativeNameSource_NONE = 0,
242   AlternativeNameSource_NAME_CORRECTION_LOG = 1,
243   AlternativeNameSource_MIN = AlternativeNameSource_NONE,
244   AlternativeNameSource_MAX = AlternativeNameSource_NAME_CORRECTION_LOG
245 };
246 
EnumValuesAlternativeNameSource()247 inline const AlternativeNameSource (&EnumValuesAlternativeNameSource())[2] {
248   static const AlternativeNameSource values[] = {
249     AlternativeNameSource_NONE,
250     AlternativeNameSource_NAME_CORRECTION_LOG
251   };
252   return values;
253 }
254 
EnumNamesAlternativeNameSource()255 inline const char * const *EnumNamesAlternativeNameSource() {
256   static const char * const names[3] = {
257     "NONE",
258     "NAME_CORRECTION_LOG",
259     nullptr
260   };
261   return names;
262 }
263 
EnumNameAlternativeNameSource(AlternativeNameSource e)264 inline const char *EnumNameAlternativeNameSource(AlternativeNameSource e) {
265   if (flatbuffers::IsOutRange(e, AlternativeNameSource_NONE, AlternativeNameSource_NAME_CORRECTION_LOG)) return "";
266   const size_t index = static_cast<size_t>(e);
267   return EnumNamesAlternativeNameSource()[index];
268 }
269 
270 }  // namespace AlternativeNameInfo_
271 }  // namespace Contact_
272 
273 namespace PaymentCard_ {
274 
275 enum CardNetwork : int32_t {
276   CardNetwork_UNKNOWN_CARD_NETWORK = 0,
277   CardNetwork_AMEX = 1,
278   CardNetwork_DINERS_CLUB = 2,
279   CardNetwork_DISCOVER = 3,
280   CardNetwork_INTER_PAYMENT = 4,
281   CardNetwork_JCB = 5,
282   CardNetwork_MAESTRO = 6,
283   CardNetwork_MASTERCARD = 7,
284   CardNetwork_MIR = 8,
285   CardNetwork_TROY = 9,
286   CardNetwork_UNIONPAY = 10,
287   CardNetwork_VISA = 11,
288   CardNetwork_MIN = CardNetwork_UNKNOWN_CARD_NETWORK,
289   CardNetwork_MAX = CardNetwork_VISA
290 };
291 
EnumValuesCardNetwork()292 inline const CardNetwork (&EnumValuesCardNetwork())[12] {
293   static const CardNetwork values[] = {
294     CardNetwork_UNKNOWN_CARD_NETWORK,
295     CardNetwork_AMEX,
296     CardNetwork_DINERS_CLUB,
297     CardNetwork_DISCOVER,
298     CardNetwork_INTER_PAYMENT,
299     CardNetwork_JCB,
300     CardNetwork_MAESTRO,
301     CardNetwork_MASTERCARD,
302     CardNetwork_MIR,
303     CardNetwork_TROY,
304     CardNetwork_UNIONPAY,
305     CardNetwork_VISA
306   };
307   return values;
308 }
309 
EnumNamesCardNetwork()310 inline const char * const *EnumNamesCardNetwork() {
311   static const char * const names[13] = {
312     "UNKNOWN_CARD_NETWORK",
313     "AMEX",
314     "DINERS_CLUB",
315     "DISCOVER",
316     "INTER_PAYMENT",
317     "JCB",
318     "MAESTRO",
319     "MASTERCARD",
320     "MIR",
321     "TROY",
322     "UNIONPAY",
323     "VISA",
324     nullptr
325   };
326   return names;
327 }
328 
EnumNameCardNetwork(CardNetwork e)329 inline const char *EnumNameCardNetwork(CardNetwork e) {
330   if (flatbuffers::IsOutRange(e, CardNetwork_UNKNOWN_CARD_NETWORK, CardNetwork_VISA)) return "";
331   const size_t index = static_cast<size_t>(e);
332   return EnumNamesCardNetwork()[index];
333 }
334 
335 }  // namespace PaymentCard_
336 
337 namespace ParcelTracking_ {
338 
339 enum Carrier : int32_t {
340   Carrier_UNKNOWN_CARRIER = 0,
341   Carrier_FEDEX = 1,
342   Carrier_UPS = 2,
343   Carrier_DHL = 3,
344   Carrier_USPS = 4,
345   Carrier_ONTRAC = 5,
346   Carrier_LASERSHIP = 6,
347   Carrier_ISRAEL_POST = 7,
348   Carrier_SWISS_POST = 8,
349   Carrier_MSC = 9,
350   Carrier_AMAZON = 10,
351   Carrier_I_PARCEL = 11,
352   Carrier_MIN = Carrier_UNKNOWN_CARRIER,
353   Carrier_MAX = Carrier_I_PARCEL
354 };
355 
EnumValuesCarrier()356 inline const Carrier (&EnumValuesCarrier())[12] {
357   static const Carrier values[] = {
358     Carrier_UNKNOWN_CARRIER,
359     Carrier_FEDEX,
360     Carrier_UPS,
361     Carrier_DHL,
362     Carrier_USPS,
363     Carrier_ONTRAC,
364     Carrier_LASERSHIP,
365     Carrier_ISRAEL_POST,
366     Carrier_SWISS_POST,
367     Carrier_MSC,
368     Carrier_AMAZON,
369     Carrier_I_PARCEL
370   };
371   return values;
372 }
373 
EnumNamesCarrier()374 inline const char * const *EnumNamesCarrier() {
375   static const char * const names[13] = {
376     "UNKNOWN_CARRIER",
377     "FEDEX",
378     "UPS",
379     "DHL",
380     "USPS",
381     "ONTRAC",
382     "LASERSHIP",
383     "ISRAEL_POST",
384     "SWISS_POST",
385     "MSC",
386     "AMAZON",
387     "I_PARCEL",
388     nullptr
389   };
390   return names;
391 }
392 
EnumNameCarrier(Carrier e)393 inline const char *EnumNameCarrier(Carrier e) {
394   if (flatbuffers::IsOutRange(e, Carrier_UNKNOWN_CARRIER, Carrier_I_PARCEL)) return "";
395   const size_t index = static_cast<size_t>(e);
396   return EnumNamesCarrier()[index];
397 }
398 
399 }  // namespace ParcelTracking_
400 
401 namespace Datetime_ {
402 
403 struct DatetimeComponentT : public flatbuffers::NativeTable {
404   typedef DatetimeComponent TableType;
405   libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType component_type = libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType_UNSPECIFIED;
406   int32_t absolute_value = 0;
407   int32_t relative_count = 0;
408   libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType relation_type = libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType_RELATION_UNSPECIFIED;
409 };
410 
411 struct DatetimeComponent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
412   typedef DatetimeComponentT NativeTableType;
413   typedef DatetimeComponentBuilder Builder;
414   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
415     VT_COMPONENT_TYPE = 4,
416     VT_ABSOLUTE_VALUE = 6,
417     VT_RELATIVE_COUNT = 8,
418     VT_RELATION_TYPE = 10
419   };
component_typeFLATBUFFERS_FINAL_CLASS420   libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType component_type() const {
421     return static_cast<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType>(GetField<int32_t>(VT_COMPONENT_TYPE, 0));
422   }
absolute_valueFLATBUFFERS_FINAL_CLASS423   int32_t absolute_value() const {
424     return GetField<int32_t>(VT_ABSOLUTE_VALUE, 0);
425   }
relative_countFLATBUFFERS_FINAL_CLASS426   int32_t relative_count() const {
427     return GetField<int32_t>(VT_RELATIVE_COUNT, 0);
428   }
relation_typeFLATBUFFERS_FINAL_CLASS429   libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType relation_type() const {
430     return static_cast<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType>(GetField<int32_t>(VT_RELATION_TYPE, 0));
431   }
VerifyFLATBUFFERS_FINAL_CLASS432   bool Verify(flatbuffers::Verifier &verifier) const {
433     return VerifyTableStart(verifier) &&
434            VerifyField<int32_t>(verifier, VT_COMPONENT_TYPE, 4) &&
435            VerifyField<int32_t>(verifier, VT_ABSOLUTE_VALUE, 4) &&
436            VerifyField<int32_t>(verifier, VT_RELATIVE_COUNT, 4) &&
437            VerifyField<int32_t>(verifier, VT_RELATION_TYPE, 4) &&
438            verifier.EndTable();
439   }
440   DatetimeComponentT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
441   void UnPackTo(DatetimeComponentT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
442   static flatbuffers::Offset<DatetimeComponent> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeComponentT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
443 };
444 
445 struct DatetimeComponentBuilder {
446   typedef DatetimeComponent Table;
447   flatbuffers::FlatBufferBuilder &fbb_;
448   flatbuffers::uoffset_t start_;
add_component_typeDatetimeComponentBuilder449   void add_component_type(libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType component_type) {
450     fbb_.AddElement<int32_t>(DatetimeComponent::VT_COMPONENT_TYPE, static_cast<int32_t>(component_type), 0);
451   }
add_absolute_valueDatetimeComponentBuilder452   void add_absolute_value(int32_t absolute_value) {
453     fbb_.AddElement<int32_t>(DatetimeComponent::VT_ABSOLUTE_VALUE, absolute_value, 0);
454   }
add_relative_countDatetimeComponentBuilder455   void add_relative_count(int32_t relative_count) {
456     fbb_.AddElement<int32_t>(DatetimeComponent::VT_RELATIVE_COUNT, relative_count, 0);
457   }
add_relation_typeDatetimeComponentBuilder458   void add_relation_type(libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType relation_type) {
459     fbb_.AddElement<int32_t>(DatetimeComponent::VT_RELATION_TYPE, static_cast<int32_t>(relation_type), 0);
460   }
DatetimeComponentBuilderDatetimeComponentBuilder461   explicit DatetimeComponentBuilder(flatbuffers::FlatBufferBuilder &_fbb)
462         : fbb_(_fbb) {
463     start_ = fbb_.StartTable();
464   }
FinishDatetimeComponentBuilder465   flatbuffers::Offset<DatetimeComponent> Finish() {
466     const auto end = fbb_.EndTable(start_);
467     auto o = flatbuffers::Offset<DatetimeComponent>(end);
468     return o;
469   }
470 };
471 
472 inline flatbuffers::Offset<DatetimeComponent> CreateDatetimeComponent(
473     flatbuffers::FlatBufferBuilder &_fbb,
474     libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType component_type = libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::ComponentType_UNSPECIFIED,
475     int32_t absolute_value = 0,
476     int32_t relative_count = 0,
477     libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType relation_type = libtextclassifier3::EntityData_::Datetime_::DatetimeComponent_::RelationType_RELATION_UNSPECIFIED) {
478   DatetimeComponentBuilder builder_(_fbb);
479   builder_.add_relation_type(relation_type);
480   builder_.add_relative_count(relative_count);
481   builder_.add_absolute_value(absolute_value);
482   builder_.add_component_type(component_type);
483   return builder_.Finish();
484 }
485 
486 flatbuffers::Offset<DatetimeComponent> CreateDatetimeComponent(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeComponentT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
487 
488 }  // namespace Datetime_
489 
490 struct DatetimeT : public flatbuffers::NativeTable {
491   typedef Datetime TableType;
492   int64_t time_ms_utc = 0;
493   libtextclassifier3::EntityData_::Datetime_::Granularity granularity = libtextclassifier3::EntityData_::Datetime_::Granularity_GRANULARITY_UNKNOWN;
494   std::vector<std::unique_ptr<libtextclassifier3::EntityData_::Datetime_::DatetimeComponentT>> datetime_component{};
495   DatetimeT() = default;
496   DatetimeT(const DatetimeT &o);
497   DatetimeT(DatetimeT&&) FLATBUFFERS_NOEXCEPT = default;
498   DatetimeT &operator=(DatetimeT o) FLATBUFFERS_NOEXCEPT;
499 };
500 
501 struct Datetime FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
502   typedef DatetimeT NativeTableType;
503   typedef DatetimeBuilder Builder;
504   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
505     VT_TIME_MS_UTC = 4,
506     VT_GRANULARITY = 6,
507     VT_DATETIME_COMPONENT = 8
508   };
time_ms_utcFLATBUFFERS_FINAL_CLASS509   int64_t time_ms_utc() const {
510     return GetField<int64_t>(VT_TIME_MS_UTC, 0);
511   }
granularityFLATBUFFERS_FINAL_CLASS512   libtextclassifier3::EntityData_::Datetime_::Granularity granularity() const {
513     return static_cast<libtextclassifier3::EntityData_::Datetime_::Granularity>(GetField<int32_t>(VT_GRANULARITY, -1));
514   }
datetime_componentFLATBUFFERS_FINAL_CLASS515   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>> *datetime_component() const {
516     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>> *>(VT_DATETIME_COMPONENT);
517   }
VerifyFLATBUFFERS_FINAL_CLASS518   bool Verify(flatbuffers::Verifier &verifier) const {
519     return VerifyTableStart(verifier) &&
520            VerifyField<int64_t>(verifier, VT_TIME_MS_UTC, 8) &&
521            VerifyField<int32_t>(verifier, VT_GRANULARITY, 4) &&
522            VerifyOffset(verifier, VT_DATETIME_COMPONENT) &&
523            verifier.VerifyVector(datetime_component()) &&
524            verifier.VerifyVectorOfTables(datetime_component()) &&
525            verifier.EndTable();
526   }
527   DatetimeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
528   void UnPackTo(DatetimeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
529   static flatbuffers::Offset<Datetime> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
530 };
531 
532 struct DatetimeBuilder {
533   typedef Datetime Table;
534   flatbuffers::FlatBufferBuilder &fbb_;
535   flatbuffers::uoffset_t start_;
add_time_ms_utcDatetimeBuilder536   void add_time_ms_utc(int64_t time_ms_utc) {
537     fbb_.AddElement<int64_t>(Datetime::VT_TIME_MS_UTC, time_ms_utc, 0);
538   }
add_granularityDatetimeBuilder539   void add_granularity(libtextclassifier3::EntityData_::Datetime_::Granularity granularity) {
540     fbb_.AddElement<int32_t>(Datetime::VT_GRANULARITY, static_cast<int32_t>(granularity), -1);
541   }
add_datetime_componentDatetimeBuilder542   void add_datetime_component(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>>> datetime_component) {
543     fbb_.AddOffset(Datetime::VT_DATETIME_COMPONENT, datetime_component);
544   }
DatetimeBuilderDatetimeBuilder545   explicit DatetimeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
546         : fbb_(_fbb) {
547     start_ = fbb_.StartTable();
548   }
FinishDatetimeBuilder549   flatbuffers::Offset<Datetime> Finish() {
550     const auto end = fbb_.EndTable(start_);
551     auto o = flatbuffers::Offset<Datetime>(end);
552     return o;
553   }
554 };
555 
556 inline flatbuffers::Offset<Datetime> CreateDatetime(
557     flatbuffers::FlatBufferBuilder &_fbb,
558     int64_t time_ms_utc = 0,
559     libtextclassifier3::EntityData_::Datetime_::Granularity granularity = libtextclassifier3::EntityData_::Datetime_::Granularity_GRANULARITY_UNKNOWN,
560     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>>> datetime_component = 0) {
561   DatetimeBuilder builder_(_fbb);
562   builder_.add_time_ms_utc(time_ms_utc);
563   builder_.add_datetime_component(datetime_component);
564   builder_.add_granularity(granularity);
565   return builder_.Finish();
566 }
567 
568 inline flatbuffers::Offset<Datetime> CreateDatetimeDirect(
569     flatbuffers::FlatBufferBuilder &_fbb,
570     int64_t time_ms_utc = 0,
571     libtextclassifier3::EntityData_::Datetime_::Granularity granularity = libtextclassifier3::EntityData_::Datetime_::Granularity_GRANULARITY_UNKNOWN,
572     const std::vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>> *datetime_component = nullptr) {
573   auto datetime_component__ = datetime_component ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>>(*datetime_component) : 0;
574   return libtextclassifier3::EntityData_::CreateDatetime(
575       _fbb,
576       time_ms_utc,
577       granularity,
578       datetime_component__);
579 }
580 
581 flatbuffers::Offset<Datetime> CreateDatetime(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
582 
583 namespace Contact_ {
584 
585 struct AlternativeNameInfoT : public flatbuffers::NativeTable {
586   typedef AlternativeNameInfo TableType;
587   std::string name{};
588   libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource source = libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource_NONE;
589 };
590 
591 struct AlternativeNameInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
592   typedef AlternativeNameInfoT NativeTableType;
593   typedef AlternativeNameInfoBuilder Builder;
594   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
595     VT_NAME = 4,
596     VT_SOURCE = 6
597   };
nameFLATBUFFERS_FINAL_CLASS598   const flatbuffers::String *name() const {
599     return GetPointer<const flatbuffers::String *>(VT_NAME);
600   }
sourceFLATBUFFERS_FINAL_CLASS601   libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource source() const {
602     return static_cast<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource>(GetField<int32_t>(VT_SOURCE, 0));
603   }
VerifyFLATBUFFERS_FINAL_CLASS604   bool Verify(flatbuffers::Verifier &verifier) const {
605     return VerifyTableStart(verifier) &&
606            VerifyOffset(verifier, VT_NAME) &&
607            verifier.VerifyString(name()) &&
608            VerifyField<int32_t>(verifier, VT_SOURCE, 4) &&
609            verifier.EndTable();
610   }
611   AlternativeNameInfoT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
612   void UnPackTo(AlternativeNameInfoT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
613   static flatbuffers::Offset<AlternativeNameInfo> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AlternativeNameInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
614 };
615 
616 struct AlternativeNameInfoBuilder {
617   typedef AlternativeNameInfo Table;
618   flatbuffers::FlatBufferBuilder &fbb_;
619   flatbuffers::uoffset_t start_;
add_nameAlternativeNameInfoBuilder620   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
621     fbb_.AddOffset(AlternativeNameInfo::VT_NAME, name);
622   }
add_sourceAlternativeNameInfoBuilder623   void add_source(libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource source) {
624     fbb_.AddElement<int32_t>(AlternativeNameInfo::VT_SOURCE, static_cast<int32_t>(source), 0);
625   }
AlternativeNameInfoBuilderAlternativeNameInfoBuilder626   explicit AlternativeNameInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
627         : fbb_(_fbb) {
628     start_ = fbb_.StartTable();
629   }
FinishAlternativeNameInfoBuilder630   flatbuffers::Offset<AlternativeNameInfo> Finish() {
631     const auto end = fbb_.EndTable(start_);
632     auto o = flatbuffers::Offset<AlternativeNameInfo>(end);
633     return o;
634   }
635 };
636 
637 inline flatbuffers::Offset<AlternativeNameInfo> CreateAlternativeNameInfo(
638     flatbuffers::FlatBufferBuilder &_fbb,
639     flatbuffers::Offset<flatbuffers::String> name = 0,
640     libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource source = libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource_NONE) {
641   AlternativeNameInfoBuilder builder_(_fbb);
642   builder_.add_source(source);
643   builder_.add_name(name);
644   return builder_.Finish();
645 }
646 
647 inline flatbuffers::Offset<AlternativeNameInfo> CreateAlternativeNameInfoDirect(
648     flatbuffers::FlatBufferBuilder &_fbb,
649     const char *name = nullptr,
650     libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource source = libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo_::AlternativeNameSource_NONE) {
651   auto name__ = name ? _fbb.CreateSharedString(name) : 0;
652   return libtextclassifier3::EntityData_::Contact_::CreateAlternativeNameInfo(
653       _fbb,
654       name__,
655       source);
656 }
657 
658 flatbuffers::Offset<AlternativeNameInfo> CreateAlternativeNameInfo(flatbuffers::FlatBufferBuilder &_fbb, const AlternativeNameInfoT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
659 
660 }  // namespace Contact_
661 
662 struct ContactT : public flatbuffers::NativeTable {
663   typedef Contact TableType;
664   std::string name{};
665   std::string given_name{};
666   std::string nickname{};
667   std::string email_address{};
668   std::string phone_number{};
669   std::string contact_id{};
670   std::vector<std::unique_ptr<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfoT>> alternative_name_info{};
671   ContactT() = default;
672   ContactT(const ContactT &o);
673   ContactT(ContactT&&) FLATBUFFERS_NOEXCEPT = default;
674   ContactT &operator=(ContactT o) FLATBUFFERS_NOEXCEPT;
675 };
676 
677 struct Contact FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
678   typedef ContactT NativeTableType;
679   typedef ContactBuilder Builder;
680   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
681     VT_NAME = 4,
682     VT_GIVEN_NAME = 6,
683     VT_NICKNAME = 8,
684     VT_EMAIL_ADDRESS = 10,
685     VT_PHONE_NUMBER = 12,
686     VT_CONTACT_ID = 14,
687     VT_ALTERNATIVE_NAME_INFO = 16
688   };
nameFLATBUFFERS_FINAL_CLASS689   const flatbuffers::String *name() const {
690     return GetPointer<const flatbuffers::String *>(VT_NAME);
691   }
given_nameFLATBUFFERS_FINAL_CLASS692   const flatbuffers::String *given_name() const {
693     return GetPointer<const flatbuffers::String *>(VT_GIVEN_NAME);
694   }
nicknameFLATBUFFERS_FINAL_CLASS695   const flatbuffers::String *nickname() const {
696     return GetPointer<const flatbuffers::String *>(VT_NICKNAME);
697   }
email_addressFLATBUFFERS_FINAL_CLASS698   const flatbuffers::String *email_address() const {
699     return GetPointer<const flatbuffers::String *>(VT_EMAIL_ADDRESS);
700   }
phone_numberFLATBUFFERS_FINAL_CLASS701   const flatbuffers::String *phone_number() const {
702     return GetPointer<const flatbuffers::String *>(VT_PHONE_NUMBER);
703   }
contact_idFLATBUFFERS_FINAL_CLASS704   const flatbuffers::String *contact_id() const {
705     return GetPointer<const flatbuffers::String *>(VT_CONTACT_ID);
706   }
alternative_name_infoFLATBUFFERS_FINAL_CLASS707   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>> *alternative_name_info() const {
708     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>> *>(VT_ALTERNATIVE_NAME_INFO);
709   }
VerifyFLATBUFFERS_FINAL_CLASS710   bool Verify(flatbuffers::Verifier &verifier) const {
711     return VerifyTableStart(verifier) &&
712            VerifyOffset(verifier, VT_NAME) &&
713            verifier.VerifyString(name()) &&
714            VerifyOffset(verifier, VT_GIVEN_NAME) &&
715            verifier.VerifyString(given_name()) &&
716            VerifyOffset(verifier, VT_NICKNAME) &&
717            verifier.VerifyString(nickname()) &&
718            VerifyOffset(verifier, VT_EMAIL_ADDRESS) &&
719            verifier.VerifyString(email_address()) &&
720            VerifyOffset(verifier, VT_PHONE_NUMBER) &&
721            verifier.VerifyString(phone_number()) &&
722            VerifyOffset(verifier, VT_CONTACT_ID) &&
723            verifier.VerifyString(contact_id()) &&
724            VerifyOffset(verifier, VT_ALTERNATIVE_NAME_INFO) &&
725            verifier.VerifyVector(alternative_name_info()) &&
726            verifier.VerifyVectorOfTables(alternative_name_info()) &&
727            verifier.EndTable();
728   }
729   ContactT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
730   void UnPackTo(ContactT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
731   static flatbuffers::Offset<Contact> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ContactT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
732 };
733 
734 struct ContactBuilder {
735   typedef Contact Table;
736   flatbuffers::FlatBufferBuilder &fbb_;
737   flatbuffers::uoffset_t start_;
add_nameContactBuilder738   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
739     fbb_.AddOffset(Contact::VT_NAME, name);
740   }
add_given_nameContactBuilder741   void add_given_name(flatbuffers::Offset<flatbuffers::String> given_name) {
742     fbb_.AddOffset(Contact::VT_GIVEN_NAME, given_name);
743   }
add_nicknameContactBuilder744   void add_nickname(flatbuffers::Offset<flatbuffers::String> nickname) {
745     fbb_.AddOffset(Contact::VT_NICKNAME, nickname);
746   }
add_email_addressContactBuilder747   void add_email_address(flatbuffers::Offset<flatbuffers::String> email_address) {
748     fbb_.AddOffset(Contact::VT_EMAIL_ADDRESS, email_address);
749   }
add_phone_numberContactBuilder750   void add_phone_number(flatbuffers::Offset<flatbuffers::String> phone_number) {
751     fbb_.AddOffset(Contact::VT_PHONE_NUMBER, phone_number);
752   }
add_contact_idContactBuilder753   void add_contact_id(flatbuffers::Offset<flatbuffers::String> contact_id) {
754     fbb_.AddOffset(Contact::VT_CONTACT_ID, contact_id);
755   }
add_alternative_name_infoContactBuilder756   void add_alternative_name_info(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>>> alternative_name_info) {
757     fbb_.AddOffset(Contact::VT_ALTERNATIVE_NAME_INFO, alternative_name_info);
758   }
ContactBuilderContactBuilder759   explicit ContactBuilder(flatbuffers::FlatBufferBuilder &_fbb)
760         : fbb_(_fbb) {
761     start_ = fbb_.StartTable();
762   }
FinishContactBuilder763   flatbuffers::Offset<Contact> Finish() {
764     const auto end = fbb_.EndTable(start_);
765     auto o = flatbuffers::Offset<Contact>(end);
766     return o;
767   }
768 };
769 
770 inline flatbuffers::Offset<Contact> CreateContact(
771     flatbuffers::FlatBufferBuilder &_fbb,
772     flatbuffers::Offset<flatbuffers::String> name = 0,
773     flatbuffers::Offset<flatbuffers::String> given_name = 0,
774     flatbuffers::Offset<flatbuffers::String> nickname = 0,
775     flatbuffers::Offset<flatbuffers::String> email_address = 0,
776     flatbuffers::Offset<flatbuffers::String> phone_number = 0,
777     flatbuffers::Offset<flatbuffers::String> contact_id = 0,
778     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>>> alternative_name_info = 0) {
779   ContactBuilder builder_(_fbb);
780   builder_.add_alternative_name_info(alternative_name_info);
781   builder_.add_contact_id(contact_id);
782   builder_.add_phone_number(phone_number);
783   builder_.add_email_address(email_address);
784   builder_.add_nickname(nickname);
785   builder_.add_given_name(given_name);
786   builder_.add_name(name);
787   return builder_.Finish();
788 }
789 
790 inline flatbuffers::Offset<Contact> CreateContactDirect(
791     flatbuffers::FlatBufferBuilder &_fbb,
792     const char *name = nullptr,
793     const char *given_name = nullptr,
794     const char *nickname = nullptr,
795     const char *email_address = nullptr,
796     const char *phone_number = nullptr,
797     const char *contact_id = nullptr,
798     const std::vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>> *alternative_name_info = nullptr) {
799   auto name__ = name ? _fbb.CreateSharedString(name) : 0;
800   auto given_name__ = given_name ? _fbb.CreateSharedString(given_name) : 0;
801   auto nickname__ = nickname ? _fbb.CreateSharedString(nickname) : 0;
802   auto email_address__ = email_address ? _fbb.CreateSharedString(email_address) : 0;
803   auto phone_number__ = phone_number ? _fbb.CreateSharedString(phone_number) : 0;
804   auto contact_id__ = contact_id ? _fbb.CreateSharedString(contact_id) : 0;
805   auto alternative_name_info__ = alternative_name_info ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>>(*alternative_name_info) : 0;
806   return libtextclassifier3::EntityData_::CreateContact(
807       _fbb,
808       name__,
809       given_name__,
810       nickname__,
811       email_address__,
812       phone_number__,
813       contact_id__,
814       alternative_name_info__);
815 }
816 
817 flatbuffers::Offset<Contact> CreateContact(flatbuffers::FlatBufferBuilder &_fbb, const ContactT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
818 
819 struct AppT : public flatbuffers::NativeTable {
820   typedef App TableType;
821   std::string name{};
822   std::string package_name{};
823 };
824 
825 struct App FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
826   typedef AppT NativeTableType;
827   typedef AppBuilder Builder;
828   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
829     VT_NAME = 4,
830     VT_PACKAGE_NAME = 6
831   };
nameFLATBUFFERS_FINAL_CLASS832   const flatbuffers::String *name() const {
833     return GetPointer<const flatbuffers::String *>(VT_NAME);
834   }
package_nameFLATBUFFERS_FINAL_CLASS835   const flatbuffers::String *package_name() const {
836     return GetPointer<const flatbuffers::String *>(VT_PACKAGE_NAME);
837   }
VerifyFLATBUFFERS_FINAL_CLASS838   bool Verify(flatbuffers::Verifier &verifier) const {
839     return VerifyTableStart(verifier) &&
840            VerifyOffset(verifier, VT_NAME) &&
841            verifier.VerifyString(name()) &&
842            VerifyOffset(verifier, VT_PACKAGE_NAME) &&
843            verifier.VerifyString(package_name()) &&
844            verifier.EndTable();
845   }
846   AppT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
847   void UnPackTo(AppT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
848   static flatbuffers::Offset<App> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AppT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
849 };
850 
851 struct AppBuilder {
852   typedef App Table;
853   flatbuffers::FlatBufferBuilder &fbb_;
854   flatbuffers::uoffset_t start_;
add_nameAppBuilder855   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
856     fbb_.AddOffset(App::VT_NAME, name);
857   }
add_package_nameAppBuilder858   void add_package_name(flatbuffers::Offset<flatbuffers::String> package_name) {
859     fbb_.AddOffset(App::VT_PACKAGE_NAME, package_name);
860   }
AppBuilderAppBuilder861   explicit AppBuilder(flatbuffers::FlatBufferBuilder &_fbb)
862         : fbb_(_fbb) {
863     start_ = fbb_.StartTable();
864   }
FinishAppBuilder865   flatbuffers::Offset<App> Finish() {
866     const auto end = fbb_.EndTable(start_);
867     auto o = flatbuffers::Offset<App>(end);
868     return o;
869   }
870 };
871 
872 inline flatbuffers::Offset<App> CreateApp(
873     flatbuffers::FlatBufferBuilder &_fbb,
874     flatbuffers::Offset<flatbuffers::String> name = 0,
875     flatbuffers::Offset<flatbuffers::String> package_name = 0) {
876   AppBuilder builder_(_fbb);
877   builder_.add_package_name(package_name);
878   builder_.add_name(name);
879   return builder_.Finish();
880 }
881 
882 inline flatbuffers::Offset<App> CreateAppDirect(
883     flatbuffers::FlatBufferBuilder &_fbb,
884     const char *name = nullptr,
885     const char *package_name = nullptr) {
886   auto name__ = name ? _fbb.CreateSharedString(name) : 0;
887   auto package_name__ = package_name ? _fbb.CreateSharedString(package_name) : 0;
888   return libtextclassifier3::EntityData_::CreateApp(
889       _fbb,
890       name__,
891       package_name__);
892 }
893 
894 flatbuffers::Offset<App> CreateApp(flatbuffers::FlatBufferBuilder &_fbb, const AppT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
895 
896 struct PaymentCardT : public flatbuffers::NativeTable {
897   typedef PaymentCard TableType;
898   libtextclassifier3::EntityData_::PaymentCard_::CardNetwork card_network = libtextclassifier3::EntityData_::PaymentCard_::CardNetwork_UNKNOWN_CARD_NETWORK;
899   std::string card_number{};
900 };
901 
902 struct PaymentCard FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
903   typedef PaymentCardT NativeTableType;
904   typedef PaymentCardBuilder Builder;
905   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
906     VT_CARD_NETWORK = 4,
907     VT_CARD_NUMBER = 6
908   };
card_networkFLATBUFFERS_FINAL_CLASS909   libtextclassifier3::EntityData_::PaymentCard_::CardNetwork card_network() const {
910     return static_cast<libtextclassifier3::EntityData_::PaymentCard_::CardNetwork>(GetField<int32_t>(VT_CARD_NETWORK, 0));
911   }
card_numberFLATBUFFERS_FINAL_CLASS912   const flatbuffers::String *card_number() const {
913     return GetPointer<const flatbuffers::String *>(VT_CARD_NUMBER);
914   }
VerifyFLATBUFFERS_FINAL_CLASS915   bool Verify(flatbuffers::Verifier &verifier) const {
916     return VerifyTableStart(verifier) &&
917            VerifyField<int32_t>(verifier, VT_CARD_NETWORK, 4) &&
918            VerifyOffset(verifier, VT_CARD_NUMBER) &&
919            verifier.VerifyString(card_number()) &&
920            verifier.EndTable();
921   }
922   PaymentCardT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
923   void UnPackTo(PaymentCardT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
924   static flatbuffers::Offset<PaymentCard> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PaymentCardT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
925 };
926 
927 struct PaymentCardBuilder {
928   typedef PaymentCard Table;
929   flatbuffers::FlatBufferBuilder &fbb_;
930   flatbuffers::uoffset_t start_;
add_card_networkPaymentCardBuilder931   void add_card_network(libtextclassifier3::EntityData_::PaymentCard_::CardNetwork card_network) {
932     fbb_.AddElement<int32_t>(PaymentCard::VT_CARD_NETWORK, static_cast<int32_t>(card_network), 0);
933   }
add_card_numberPaymentCardBuilder934   void add_card_number(flatbuffers::Offset<flatbuffers::String> card_number) {
935     fbb_.AddOffset(PaymentCard::VT_CARD_NUMBER, card_number);
936   }
PaymentCardBuilderPaymentCardBuilder937   explicit PaymentCardBuilder(flatbuffers::FlatBufferBuilder &_fbb)
938         : fbb_(_fbb) {
939     start_ = fbb_.StartTable();
940   }
FinishPaymentCardBuilder941   flatbuffers::Offset<PaymentCard> Finish() {
942     const auto end = fbb_.EndTable(start_);
943     auto o = flatbuffers::Offset<PaymentCard>(end);
944     return o;
945   }
946 };
947 
948 inline flatbuffers::Offset<PaymentCard> CreatePaymentCard(
949     flatbuffers::FlatBufferBuilder &_fbb,
950     libtextclassifier3::EntityData_::PaymentCard_::CardNetwork card_network = libtextclassifier3::EntityData_::PaymentCard_::CardNetwork_UNKNOWN_CARD_NETWORK,
951     flatbuffers::Offset<flatbuffers::String> card_number = 0) {
952   PaymentCardBuilder builder_(_fbb);
953   builder_.add_card_number(card_number);
954   builder_.add_card_network(card_network);
955   return builder_.Finish();
956 }
957 
958 inline flatbuffers::Offset<PaymentCard> CreatePaymentCardDirect(
959     flatbuffers::FlatBufferBuilder &_fbb,
960     libtextclassifier3::EntityData_::PaymentCard_::CardNetwork card_network = libtextclassifier3::EntityData_::PaymentCard_::CardNetwork_UNKNOWN_CARD_NETWORK,
961     const char *card_number = nullptr) {
962   auto card_number__ = card_number ? _fbb.CreateSharedString(card_number) : 0;
963   return libtextclassifier3::EntityData_::CreatePaymentCard(
964       _fbb,
965       card_network,
966       card_number__);
967 }
968 
969 flatbuffers::Offset<PaymentCard> CreatePaymentCard(flatbuffers::FlatBufferBuilder &_fbb, const PaymentCardT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
970 
971 struct FlightT : public flatbuffers::NativeTable {
972   typedef Flight TableType;
973   std::string airline_code{};
974   std::string flight_number{};
975 };
976 
977 struct Flight FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
978   typedef FlightT NativeTableType;
979   typedef FlightBuilder Builder;
980   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
981     VT_AIRLINE_CODE = 4,
982     VT_FLIGHT_NUMBER = 6
983   };
airline_codeFLATBUFFERS_FINAL_CLASS984   const flatbuffers::String *airline_code() const {
985     return GetPointer<const flatbuffers::String *>(VT_AIRLINE_CODE);
986   }
flight_numberFLATBUFFERS_FINAL_CLASS987   const flatbuffers::String *flight_number() const {
988     return GetPointer<const flatbuffers::String *>(VT_FLIGHT_NUMBER);
989   }
VerifyFLATBUFFERS_FINAL_CLASS990   bool Verify(flatbuffers::Verifier &verifier) const {
991     return VerifyTableStart(verifier) &&
992            VerifyOffset(verifier, VT_AIRLINE_CODE) &&
993            verifier.VerifyString(airline_code()) &&
994            VerifyOffset(verifier, VT_FLIGHT_NUMBER) &&
995            verifier.VerifyString(flight_number()) &&
996            verifier.EndTable();
997   }
998   FlightT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
999   void UnPackTo(FlightT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1000   static flatbuffers::Offset<Flight> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FlightT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1001 };
1002 
1003 struct FlightBuilder {
1004   typedef Flight Table;
1005   flatbuffers::FlatBufferBuilder &fbb_;
1006   flatbuffers::uoffset_t start_;
add_airline_codeFlightBuilder1007   void add_airline_code(flatbuffers::Offset<flatbuffers::String> airline_code) {
1008     fbb_.AddOffset(Flight::VT_AIRLINE_CODE, airline_code);
1009   }
add_flight_numberFlightBuilder1010   void add_flight_number(flatbuffers::Offset<flatbuffers::String> flight_number) {
1011     fbb_.AddOffset(Flight::VT_FLIGHT_NUMBER, flight_number);
1012   }
FlightBuilderFlightBuilder1013   explicit FlightBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1014         : fbb_(_fbb) {
1015     start_ = fbb_.StartTable();
1016   }
FinishFlightBuilder1017   flatbuffers::Offset<Flight> Finish() {
1018     const auto end = fbb_.EndTable(start_);
1019     auto o = flatbuffers::Offset<Flight>(end);
1020     return o;
1021   }
1022 };
1023 
1024 inline flatbuffers::Offset<Flight> CreateFlight(
1025     flatbuffers::FlatBufferBuilder &_fbb,
1026     flatbuffers::Offset<flatbuffers::String> airline_code = 0,
1027     flatbuffers::Offset<flatbuffers::String> flight_number = 0) {
1028   FlightBuilder builder_(_fbb);
1029   builder_.add_flight_number(flight_number);
1030   builder_.add_airline_code(airline_code);
1031   return builder_.Finish();
1032 }
1033 
1034 inline flatbuffers::Offset<Flight> CreateFlightDirect(
1035     flatbuffers::FlatBufferBuilder &_fbb,
1036     const char *airline_code = nullptr,
1037     const char *flight_number = nullptr) {
1038   auto airline_code__ = airline_code ? _fbb.CreateSharedString(airline_code) : 0;
1039   auto flight_number__ = flight_number ? _fbb.CreateSharedString(flight_number) : 0;
1040   return libtextclassifier3::EntityData_::CreateFlight(
1041       _fbb,
1042       airline_code__,
1043       flight_number__);
1044 }
1045 
1046 flatbuffers::Offset<Flight> CreateFlight(flatbuffers::FlatBufferBuilder &_fbb, const FlightT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1047 
1048 struct IsbnT : public flatbuffers::NativeTable {
1049   typedef Isbn TableType;
1050   std::string number{};
1051 };
1052 
1053 struct Isbn FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1054   typedef IsbnT NativeTableType;
1055   typedef IsbnBuilder Builder;
1056   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1057     VT_NUMBER = 4
1058   };
numberFLATBUFFERS_FINAL_CLASS1059   const flatbuffers::String *number() const {
1060     return GetPointer<const flatbuffers::String *>(VT_NUMBER);
1061   }
VerifyFLATBUFFERS_FINAL_CLASS1062   bool Verify(flatbuffers::Verifier &verifier) const {
1063     return VerifyTableStart(verifier) &&
1064            VerifyOffset(verifier, VT_NUMBER) &&
1065            verifier.VerifyString(number()) &&
1066            verifier.EndTable();
1067   }
1068   IsbnT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1069   void UnPackTo(IsbnT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1070   static flatbuffers::Offset<Isbn> Pack(flatbuffers::FlatBufferBuilder &_fbb, const IsbnT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1071 };
1072 
1073 struct IsbnBuilder {
1074   typedef Isbn Table;
1075   flatbuffers::FlatBufferBuilder &fbb_;
1076   flatbuffers::uoffset_t start_;
add_numberIsbnBuilder1077   void add_number(flatbuffers::Offset<flatbuffers::String> number) {
1078     fbb_.AddOffset(Isbn::VT_NUMBER, number);
1079   }
IsbnBuilderIsbnBuilder1080   explicit IsbnBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1081         : fbb_(_fbb) {
1082     start_ = fbb_.StartTable();
1083   }
FinishIsbnBuilder1084   flatbuffers::Offset<Isbn> Finish() {
1085     const auto end = fbb_.EndTable(start_);
1086     auto o = flatbuffers::Offset<Isbn>(end);
1087     return o;
1088   }
1089 };
1090 
1091 inline flatbuffers::Offset<Isbn> CreateIsbn(
1092     flatbuffers::FlatBufferBuilder &_fbb,
1093     flatbuffers::Offset<flatbuffers::String> number = 0) {
1094   IsbnBuilder builder_(_fbb);
1095   builder_.add_number(number);
1096   return builder_.Finish();
1097 }
1098 
1099 inline flatbuffers::Offset<Isbn> CreateIsbnDirect(
1100     flatbuffers::FlatBufferBuilder &_fbb,
1101     const char *number = nullptr) {
1102   auto number__ = number ? _fbb.CreateSharedString(number) : 0;
1103   return libtextclassifier3::EntityData_::CreateIsbn(
1104       _fbb,
1105       number__);
1106 }
1107 
1108 flatbuffers::Offset<Isbn> CreateIsbn(flatbuffers::FlatBufferBuilder &_fbb, const IsbnT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1109 
1110 struct IbanT : public flatbuffers::NativeTable {
1111   typedef Iban TableType;
1112   std::string number{};
1113   std::string country_code{};
1114 };
1115 
1116 struct Iban FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1117   typedef IbanT NativeTableType;
1118   typedef IbanBuilder Builder;
1119   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1120     VT_NUMBER = 4,
1121     VT_COUNTRY_CODE = 6
1122   };
numberFLATBUFFERS_FINAL_CLASS1123   const flatbuffers::String *number() const {
1124     return GetPointer<const flatbuffers::String *>(VT_NUMBER);
1125   }
country_codeFLATBUFFERS_FINAL_CLASS1126   const flatbuffers::String *country_code() const {
1127     return GetPointer<const flatbuffers::String *>(VT_COUNTRY_CODE);
1128   }
VerifyFLATBUFFERS_FINAL_CLASS1129   bool Verify(flatbuffers::Verifier &verifier) const {
1130     return VerifyTableStart(verifier) &&
1131            VerifyOffset(verifier, VT_NUMBER) &&
1132            verifier.VerifyString(number()) &&
1133            VerifyOffset(verifier, VT_COUNTRY_CODE) &&
1134            verifier.VerifyString(country_code()) &&
1135            verifier.EndTable();
1136   }
1137   IbanT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1138   void UnPackTo(IbanT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1139   static flatbuffers::Offset<Iban> Pack(flatbuffers::FlatBufferBuilder &_fbb, const IbanT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1140 };
1141 
1142 struct IbanBuilder {
1143   typedef Iban Table;
1144   flatbuffers::FlatBufferBuilder &fbb_;
1145   flatbuffers::uoffset_t start_;
add_numberIbanBuilder1146   void add_number(flatbuffers::Offset<flatbuffers::String> number) {
1147     fbb_.AddOffset(Iban::VT_NUMBER, number);
1148   }
add_country_codeIbanBuilder1149   void add_country_code(flatbuffers::Offset<flatbuffers::String> country_code) {
1150     fbb_.AddOffset(Iban::VT_COUNTRY_CODE, country_code);
1151   }
IbanBuilderIbanBuilder1152   explicit IbanBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1153         : fbb_(_fbb) {
1154     start_ = fbb_.StartTable();
1155   }
FinishIbanBuilder1156   flatbuffers::Offset<Iban> Finish() {
1157     const auto end = fbb_.EndTable(start_);
1158     auto o = flatbuffers::Offset<Iban>(end);
1159     return o;
1160   }
1161 };
1162 
1163 inline flatbuffers::Offset<Iban> CreateIban(
1164     flatbuffers::FlatBufferBuilder &_fbb,
1165     flatbuffers::Offset<flatbuffers::String> number = 0,
1166     flatbuffers::Offset<flatbuffers::String> country_code = 0) {
1167   IbanBuilder builder_(_fbb);
1168   builder_.add_country_code(country_code);
1169   builder_.add_number(number);
1170   return builder_.Finish();
1171 }
1172 
1173 inline flatbuffers::Offset<Iban> CreateIbanDirect(
1174     flatbuffers::FlatBufferBuilder &_fbb,
1175     const char *number = nullptr,
1176     const char *country_code = nullptr) {
1177   auto number__ = number ? _fbb.CreateSharedString(number) : 0;
1178   auto country_code__ = country_code ? _fbb.CreateSharedString(country_code) : 0;
1179   return libtextclassifier3::EntityData_::CreateIban(
1180       _fbb,
1181       number__,
1182       country_code__);
1183 }
1184 
1185 flatbuffers::Offset<Iban> CreateIban(flatbuffers::FlatBufferBuilder &_fbb, const IbanT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1186 
1187 struct ParcelTrackingT : public flatbuffers::NativeTable {
1188   typedef ParcelTracking TableType;
1189   libtextclassifier3::EntityData_::ParcelTracking_::Carrier carrier = libtextclassifier3::EntityData_::ParcelTracking_::Carrier_UNKNOWN_CARRIER;
1190   std::string tracking_number{};
1191 };
1192 
1193 struct ParcelTracking FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1194   typedef ParcelTrackingT NativeTableType;
1195   typedef ParcelTrackingBuilder Builder;
1196   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1197     VT_CARRIER = 4,
1198     VT_TRACKING_NUMBER = 6
1199   };
carrierFLATBUFFERS_FINAL_CLASS1200   libtextclassifier3::EntityData_::ParcelTracking_::Carrier carrier() const {
1201     return static_cast<libtextclassifier3::EntityData_::ParcelTracking_::Carrier>(GetField<int32_t>(VT_CARRIER, 0));
1202   }
tracking_numberFLATBUFFERS_FINAL_CLASS1203   const flatbuffers::String *tracking_number() const {
1204     return GetPointer<const flatbuffers::String *>(VT_TRACKING_NUMBER);
1205   }
VerifyFLATBUFFERS_FINAL_CLASS1206   bool Verify(flatbuffers::Verifier &verifier) const {
1207     return VerifyTableStart(verifier) &&
1208            VerifyField<int32_t>(verifier, VT_CARRIER, 4) &&
1209            VerifyOffset(verifier, VT_TRACKING_NUMBER) &&
1210            verifier.VerifyString(tracking_number()) &&
1211            verifier.EndTable();
1212   }
1213   ParcelTrackingT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1214   void UnPackTo(ParcelTrackingT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1215   static flatbuffers::Offset<ParcelTracking> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ParcelTrackingT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1216 };
1217 
1218 struct ParcelTrackingBuilder {
1219   typedef ParcelTracking Table;
1220   flatbuffers::FlatBufferBuilder &fbb_;
1221   flatbuffers::uoffset_t start_;
add_carrierParcelTrackingBuilder1222   void add_carrier(libtextclassifier3::EntityData_::ParcelTracking_::Carrier carrier) {
1223     fbb_.AddElement<int32_t>(ParcelTracking::VT_CARRIER, static_cast<int32_t>(carrier), 0);
1224   }
add_tracking_numberParcelTrackingBuilder1225   void add_tracking_number(flatbuffers::Offset<flatbuffers::String> tracking_number) {
1226     fbb_.AddOffset(ParcelTracking::VT_TRACKING_NUMBER, tracking_number);
1227   }
ParcelTrackingBuilderParcelTrackingBuilder1228   explicit ParcelTrackingBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1229         : fbb_(_fbb) {
1230     start_ = fbb_.StartTable();
1231   }
FinishParcelTrackingBuilder1232   flatbuffers::Offset<ParcelTracking> Finish() {
1233     const auto end = fbb_.EndTable(start_);
1234     auto o = flatbuffers::Offset<ParcelTracking>(end);
1235     return o;
1236   }
1237 };
1238 
1239 inline flatbuffers::Offset<ParcelTracking> CreateParcelTracking(
1240     flatbuffers::FlatBufferBuilder &_fbb,
1241     libtextclassifier3::EntityData_::ParcelTracking_::Carrier carrier = libtextclassifier3::EntityData_::ParcelTracking_::Carrier_UNKNOWN_CARRIER,
1242     flatbuffers::Offset<flatbuffers::String> tracking_number = 0) {
1243   ParcelTrackingBuilder builder_(_fbb);
1244   builder_.add_tracking_number(tracking_number);
1245   builder_.add_carrier(carrier);
1246   return builder_.Finish();
1247 }
1248 
1249 inline flatbuffers::Offset<ParcelTracking> CreateParcelTrackingDirect(
1250     flatbuffers::FlatBufferBuilder &_fbb,
1251     libtextclassifier3::EntityData_::ParcelTracking_::Carrier carrier = libtextclassifier3::EntityData_::ParcelTracking_::Carrier_UNKNOWN_CARRIER,
1252     const char *tracking_number = nullptr) {
1253   auto tracking_number__ = tracking_number ? _fbb.CreateSharedString(tracking_number) : 0;
1254   return libtextclassifier3::EntityData_::CreateParcelTracking(
1255       _fbb,
1256       carrier,
1257       tracking_number__);
1258 }
1259 
1260 flatbuffers::Offset<ParcelTracking> CreateParcelTracking(flatbuffers::FlatBufferBuilder &_fbb, const ParcelTrackingT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1261 
1262 struct MoneyT : public flatbuffers::NativeTable {
1263   typedef Money TableType;
1264   std::string unnormalized_currency{};
1265   int32_t amount_whole_part = 0;
1266   int32_t amount_decimal_part = 0;
1267   std::string unnormalized_amount{};
1268   int32_t nanos = 0;
1269   std::string quantity{};
1270 };
1271 
1272 struct Money FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1273   typedef MoneyT NativeTableType;
1274   typedef MoneyBuilder Builder;
1275   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1276     VT_UNNORMALIZED_CURRENCY = 4,
1277     VT_AMOUNT_WHOLE_PART = 6,
1278     VT_AMOUNT_DECIMAL_PART = 8,
1279     VT_UNNORMALIZED_AMOUNT = 10,
1280     VT_NANOS = 12,
1281     VT_QUANTITY = 14
1282   };
unnormalized_currencyFLATBUFFERS_FINAL_CLASS1283   const flatbuffers::String *unnormalized_currency() const {
1284     return GetPointer<const flatbuffers::String *>(VT_UNNORMALIZED_CURRENCY);
1285   }
amount_whole_partFLATBUFFERS_FINAL_CLASS1286   int32_t amount_whole_part() const {
1287     return GetField<int32_t>(VT_AMOUNT_WHOLE_PART, 0);
1288   }
amount_decimal_partFLATBUFFERS_FINAL_CLASS1289   int32_t amount_decimal_part() const {
1290     return GetField<int32_t>(VT_AMOUNT_DECIMAL_PART, 0);
1291   }
unnormalized_amountFLATBUFFERS_FINAL_CLASS1292   const flatbuffers::String *unnormalized_amount() const {
1293     return GetPointer<const flatbuffers::String *>(VT_UNNORMALIZED_AMOUNT);
1294   }
nanosFLATBUFFERS_FINAL_CLASS1295   int32_t nanos() const {
1296     return GetField<int32_t>(VT_NANOS, 0);
1297   }
quantityFLATBUFFERS_FINAL_CLASS1298   const flatbuffers::String *quantity() const {
1299     return GetPointer<const flatbuffers::String *>(VT_QUANTITY);
1300   }
VerifyFLATBUFFERS_FINAL_CLASS1301   bool Verify(flatbuffers::Verifier &verifier) const {
1302     return VerifyTableStart(verifier) &&
1303            VerifyOffset(verifier, VT_UNNORMALIZED_CURRENCY) &&
1304            verifier.VerifyString(unnormalized_currency()) &&
1305            VerifyField<int32_t>(verifier, VT_AMOUNT_WHOLE_PART, 4) &&
1306            VerifyField<int32_t>(verifier, VT_AMOUNT_DECIMAL_PART, 4) &&
1307            VerifyOffset(verifier, VT_UNNORMALIZED_AMOUNT) &&
1308            verifier.VerifyString(unnormalized_amount()) &&
1309            VerifyField<int32_t>(verifier, VT_NANOS, 4) &&
1310            VerifyOffset(verifier, VT_QUANTITY) &&
1311            verifier.VerifyString(quantity()) &&
1312            verifier.EndTable();
1313   }
1314   MoneyT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1315   void UnPackTo(MoneyT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1316   static flatbuffers::Offset<Money> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MoneyT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1317 };
1318 
1319 struct MoneyBuilder {
1320   typedef Money Table;
1321   flatbuffers::FlatBufferBuilder &fbb_;
1322   flatbuffers::uoffset_t start_;
add_unnormalized_currencyMoneyBuilder1323   void add_unnormalized_currency(flatbuffers::Offset<flatbuffers::String> unnormalized_currency) {
1324     fbb_.AddOffset(Money::VT_UNNORMALIZED_CURRENCY, unnormalized_currency);
1325   }
add_amount_whole_partMoneyBuilder1326   void add_amount_whole_part(int32_t amount_whole_part) {
1327     fbb_.AddElement<int32_t>(Money::VT_AMOUNT_WHOLE_PART, amount_whole_part, 0);
1328   }
add_amount_decimal_partMoneyBuilder1329   void add_amount_decimal_part(int32_t amount_decimal_part) {
1330     fbb_.AddElement<int32_t>(Money::VT_AMOUNT_DECIMAL_PART, amount_decimal_part, 0);
1331   }
add_unnormalized_amountMoneyBuilder1332   void add_unnormalized_amount(flatbuffers::Offset<flatbuffers::String> unnormalized_amount) {
1333     fbb_.AddOffset(Money::VT_UNNORMALIZED_AMOUNT, unnormalized_amount);
1334   }
add_nanosMoneyBuilder1335   void add_nanos(int32_t nanos) {
1336     fbb_.AddElement<int32_t>(Money::VT_NANOS, nanos, 0);
1337   }
add_quantityMoneyBuilder1338   void add_quantity(flatbuffers::Offset<flatbuffers::String> quantity) {
1339     fbb_.AddOffset(Money::VT_QUANTITY, quantity);
1340   }
MoneyBuilderMoneyBuilder1341   explicit MoneyBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1342         : fbb_(_fbb) {
1343     start_ = fbb_.StartTable();
1344   }
FinishMoneyBuilder1345   flatbuffers::Offset<Money> Finish() {
1346     const auto end = fbb_.EndTable(start_);
1347     auto o = flatbuffers::Offset<Money>(end);
1348     return o;
1349   }
1350 };
1351 
1352 inline flatbuffers::Offset<Money> CreateMoney(
1353     flatbuffers::FlatBufferBuilder &_fbb,
1354     flatbuffers::Offset<flatbuffers::String> unnormalized_currency = 0,
1355     int32_t amount_whole_part = 0,
1356     int32_t amount_decimal_part = 0,
1357     flatbuffers::Offset<flatbuffers::String> unnormalized_amount = 0,
1358     int32_t nanos = 0,
1359     flatbuffers::Offset<flatbuffers::String> quantity = 0) {
1360   MoneyBuilder builder_(_fbb);
1361   builder_.add_quantity(quantity);
1362   builder_.add_nanos(nanos);
1363   builder_.add_unnormalized_amount(unnormalized_amount);
1364   builder_.add_amount_decimal_part(amount_decimal_part);
1365   builder_.add_amount_whole_part(amount_whole_part);
1366   builder_.add_unnormalized_currency(unnormalized_currency);
1367   return builder_.Finish();
1368 }
1369 
1370 inline flatbuffers::Offset<Money> CreateMoneyDirect(
1371     flatbuffers::FlatBufferBuilder &_fbb,
1372     const char *unnormalized_currency = nullptr,
1373     int32_t amount_whole_part = 0,
1374     int32_t amount_decimal_part = 0,
1375     const char *unnormalized_amount = nullptr,
1376     int32_t nanos = 0,
1377     const char *quantity = nullptr) {
1378   auto unnormalized_currency__ = unnormalized_currency ? _fbb.CreateSharedString(unnormalized_currency) : 0;
1379   auto unnormalized_amount__ = unnormalized_amount ? _fbb.CreateSharedString(unnormalized_amount) : 0;
1380   auto quantity__ = quantity ? _fbb.CreateSharedString(quantity) : 0;
1381   return libtextclassifier3::EntityData_::CreateMoney(
1382       _fbb,
1383       unnormalized_currency__,
1384       amount_whole_part,
1385       amount_decimal_part,
1386       unnormalized_amount__,
1387       nanos,
1388       quantity__);
1389 }
1390 
1391 flatbuffers::Offset<Money> CreateMoney(flatbuffers::FlatBufferBuilder &_fbb, const MoneyT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1392 
1393 namespace Translate_ {
1394 
1395 struct LanguagePredictionResultT : public flatbuffers::NativeTable {
1396   typedef LanguagePredictionResult TableType;
1397   std::string language_tag{};
1398   float confidence_score = 0.0f;
1399 };
1400 
1401 struct LanguagePredictionResult FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1402   typedef LanguagePredictionResultT NativeTableType;
1403   typedef LanguagePredictionResultBuilder Builder;
1404   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1405     VT_LANGUAGE_TAG = 4,
1406     VT_CONFIDENCE_SCORE = 6
1407   };
language_tagFLATBUFFERS_FINAL_CLASS1408   const flatbuffers::String *language_tag() const {
1409     return GetPointer<const flatbuffers::String *>(VT_LANGUAGE_TAG);
1410   }
confidence_scoreFLATBUFFERS_FINAL_CLASS1411   float confidence_score() const {
1412     return GetField<float>(VT_CONFIDENCE_SCORE, 0.0f);
1413   }
VerifyFLATBUFFERS_FINAL_CLASS1414   bool Verify(flatbuffers::Verifier &verifier) const {
1415     return VerifyTableStart(verifier) &&
1416            VerifyOffset(verifier, VT_LANGUAGE_TAG) &&
1417            verifier.VerifyString(language_tag()) &&
1418            VerifyField<float>(verifier, VT_CONFIDENCE_SCORE, 4) &&
1419            verifier.EndTable();
1420   }
1421   LanguagePredictionResultT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1422   void UnPackTo(LanguagePredictionResultT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1423   static flatbuffers::Offset<LanguagePredictionResult> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LanguagePredictionResultT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1424 };
1425 
1426 struct LanguagePredictionResultBuilder {
1427   typedef LanguagePredictionResult Table;
1428   flatbuffers::FlatBufferBuilder &fbb_;
1429   flatbuffers::uoffset_t start_;
add_language_tagLanguagePredictionResultBuilder1430   void add_language_tag(flatbuffers::Offset<flatbuffers::String> language_tag) {
1431     fbb_.AddOffset(LanguagePredictionResult::VT_LANGUAGE_TAG, language_tag);
1432   }
add_confidence_scoreLanguagePredictionResultBuilder1433   void add_confidence_score(float confidence_score) {
1434     fbb_.AddElement<float>(LanguagePredictionResult::VT_CONFIDENCE_SCORE, confidence_score, 0.0f);
1435   }
LanguagePredictionResultBuilderLanguagePredictionResultBuilder1436   explicit LanguagePredictionResultBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1437         : fbb_(_fbb) {
1438     start_ = fbb_.StartTable();
1439   }
FinishLanguagePredictionResultBuilder1440   flatbuffers::Offset<LanguagePredictionResult> Finish() {
1441     const auto end = fbb_.EndTable(start_);
1442     auto o = flatbuffers::Offset<LanguagePredictionResult>(end);
1443     return o;
1444   }
1445 };
1446 
1447 inline flatbuffers::Offset<LanguagePredictionResult> CreateLanguagePredictionResult(
1448     flatbuffers::FlatBufferBuilder &_fbb,
1449     flatbuffers::Offset<flatbuffers::String> language_tag = 0,
1450     float confidence_score = 0.0f) {
1451   LanguagePredictionResultBuilder builder_(_fbb);
1452   builder_.add_confidence_score(confidence_score);
1453   builder_.add_language_tag(language_tag);
1454   return builder_.Finish();
1455 }
1456 
1457 inline flatbuffers::Offset<LanguagePredictionResult> CreateLanguagePredictionResultDirect(
1458     flatbuffers::FlatBufferBuilder &_fbb,
1459     const char *language_tag = nullptr,
1460     float confidence_score = 0.0f) {
1461   auto language_tag__ = language_tag ? _fbb.CreateSharedString(language_tag) : 0;
1462   return libtextclassifier3::EntityData_::Translate_::CreateLanguagePredictionResult(
1463       _fbb,
1464       language_tag__,
1465       confidence_score);
1466 }
1467 
1468 flatbuffers::Offset<LanguagePredictionResult> CreateLanguagePredictionResult(flatbuffers::FlatBufferBuilder &_fbb, const LanguagePredictionResultT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1469 
1470 }  // namespace Translate_
1471 
1472 struct TranslateT : public flatbuffers::NativeTable {
1473   typedef Translate TableType;
1474   std::vector<std::unique_ptr<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResultT>> language_prediction_results{};
1475   TranslateT() = default;
1476   TranslateT(const TranslateT &o);
1477   TranslateT(TranslateT&&) FLATBUFFERS_NOEXCEPT = default;
1478   TranslateT &operator=(TranslateT o) FLATBUFFERS_NOEXCEPT;
1479 };
1480 
1481 struct Translate FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1482   typedef TranslateT NativeTableType;
1483   typedef TranslateBuilder Builder;
1484   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1485     VT_LANGUAGE_PREDICTION_RESULTS = 4
1486   };
language_prediction_resultsFLATBUFFERS_FINAL_CLASS1487   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>> *language_prediction_results() const {
1488     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>> *>(VT_LANGUAGE_PREDICTION_RESULTS);
1489   }
VerifyFLATBUFFERS_FINAL_CLASS1490   bool Verify(flatbuffers::Verifier &verifier) const {
1491     return VerifyTableStart(verifier) &&
1492            VerifyOffset(verifier, VT_LANGUAGE_PREDICTION_RESULTS) &&
1493            verifier.VerifyVector(language_prediction_results()) &&
1494            verifier.VerifyVectorOfTables(language_prediction_results()) &&
1495            verifier.EndTable();
1496   }
1497   TranslateT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1498   void UnPackTo(TranslateT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1499   static flatbuffers::Offset<Translate> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TranslateT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1500 };
1501 
1502 struct TranslateBuilder {
1503   typedef Translate Table;
1504   flatbuffers::FlatBufferBuilder &fbb_;
1505   flatbuffers::uoffset_t start_;
add_language_prediction_resultsTranslateBuilder1506   void add_language_prediction_results(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>>> language_prediction_results) {
1507     fbb_.AddOffset(Translate::VT_LANGUAGE_PREDICTION_RESULTS, language_prediction_results);
1508   }
TranslateBuilderTranslateBuilder1509   explicit TranslateBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1510         : fbb_(_fbb) {
1511     start_ = fbb_.StartTable();
1512   }
FinishTranslateBuilder1513   flatbuffers::Offset<Translate> Finish() {
1514     const auto end = fbb_.EndTable(start_);
1515     auto o = flatbuffers::Offset<Translate>(end);
1516     return o;
1517   }
1518 };
1519 
1520 inline flatbuffers::Offset<Translate> CreateTranslate(
1521     flatbuffers::FlatBufferBuilder &_fbb,
1522     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>>> language_prediction_results = 0) {
1523   TranslateBuilder builder_(_fbb);
1524   builder_.add_language_prediction_results(language_prediction_results);
1525   return builder_.Finish();
1526 }
1527 
1528 inline flatbuffers::Offset<Translate> CreateTranslateDirect(
1529     flatbuffers::FlatBufferBuilder &_fbb,
1530     const std::vector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>> *language_prediction_results = nullptr) {
1531   auto language_prediction_results__ = language_prediction_results ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>>(*language_prediction_results) : 0;
1532   return libtextclassifier3::EntityData_::CreateTranslate(
1533       _fbb,
1534       language_prediction_results__);
1535 }
1536 
1537 flatbuffers::Offset<Translate> CreateTranslate(flatbuffers::FlatBufferBuilder &_fbb, const TranslateT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1538 
1539 }  // namespace EntityData_
1540 
1541 struct EntityDataT : public flatbuffers::NativeTable {
1542   typedef EntityData TableType;
1543   int32_t start = 0;
1544   int32_t end = 0;
1545   std::string type{};
1546   std::unique_ptr<libtextclassifier3::EntityData_::DatetimeT> datetime{};
1547   std::unique_ptr<libtextclassifier3::EntityData_::ContactT> contact{};
1548   std::unique_ptr<libtextclassifier3::EntityData_::AppT> app{};
1549   std::unique_ptr<libtextclassifier3::EntityData_::PaymentCardT> payment_card{};
1550   std::unique_ptr<libtextclassifier3::EntityData_::FlightT> flight{};
1551   std::unique_ptr<libtextclassifier3::EntityData_::IsbnT> isbn{};
1552   std::unique_ptr<libtextclassifier3::EntityData_::IbanT> iban{};
1553   std::unique_ptr<libtextclassifier3::EntityData_::ParcelTrackingT> parcel{};
1554   std::unique_ptr<libtextclassifier3::EntityData_::MoneyT> money{};
1555   std::unique_ptr<libtextclassifier3::EntityData_::TranslateT> translate{};
1556   EntityDataT() = default;
1557   EntityDataT(const EntityDataT &o);
1558   EntityDataT(EntityDataT&&) FLATBUFFERS_NOEXCEPT = default;
1559   EntityDataT &operator=(EntityDataT o) FLATBUFFERS_NOEXCEPT;
1560 };
1561 
1562 struct EntityData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1563   typedef EntityDataT NativeTableType;
1564   typedef EntityDataBuilder Builder;
1565   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1566     VT_START = 4,
1567     VT_END = 6,
1568     VT_TYPE = 8,
1569     VT_DATETIME = 10,
1570     VT_CONTACT = 14,
1571     VT_APP = 16,
1572     VT_PAYMENT_CARD = 18,
1573     VT_FLIGHT = 20,
1574     VT_ISBN = 22,
1575     VT_IBAN = 24,
1576     VT_PARCEL = 26,
1577     VT_MONEY = 28,
1578     VT_TRANSLATE = 30
1579   };
startFLATBUFFERS_FINAL_CLASS1580   int32_t start() const {
1581     return GetField<int32_t>(VT_START, 0);
1582   }
endFLATBUFFERS_FINAL_CLASS1583   int32_t end() const {
1584     return GetField<int32_t>(VT_END, 0);
1585   }
typeFLATBUFFERS_FINAL_CLASS1586   const flatbuffers::String *type() const {
1587     return GetPointer<const flatbuffers::String *>(VT_TYPE);
1588   }
datetimeFLATBUFFERS_FINAL_CLASS1589   const libtextclassifier3::EntityData_::Datetime *datetime() const {
1590     return GetPointer<const libtextclassifier3::EntityData_::Datetime *>(VT_DATETIME);
1591   }
contactFLATBUFFERS_FINAL_CLASS1592   const libtextclassifier3::EntityData_::Contact *contact() const {
1593     return GetPointer<const libtextclassifier3::EntityData_::Contact *>(VT_CONTACT);
1594   }
appFLATBUFFERS_FINAL_CLASS1595   const libtextclassifier3::EntityData_::App *app() const {
1596     return GetPointer<const libtextclassifier3::EntityData_::App *>(VT_APP);
1597   }
payment_cardFLATBUFFERS_FINAL_CLASS1598   const libtextclassifier3::EntityData_::PaymentCard *payment_card() const {
1599     return GetPointer<const libtextclassifier3::EntityData_::PaymentCard *>(VT_PAYMENT_CARD);
1600   }
flightFLATBUFFERS_FINAL_CLASS1601   const libtextclassifier3::EntityData_::Flight *flight() const {
1602     return GetPointer<const libtextclassifier3::EntityData_::Flight *>(VT_FLIGHT);
1603   }
isbnFLATBUFFERS_FINAL_CLASS1604   const libtextclassifier3::EntityData_::Isbn *isbn() const {
1605     return GetPointer<const libtextclassifier3::EntityData_::Isbn *>(VT_ISBN);
1606   }
ibanFLATBUFFERS_FINAL_CLASS1607   const libtextclassifier3::EntityData_::Iban *iban() const {
1608     return GetPointer<const libtextclassifier3::EntityData_::Iban *>(VT_IBAN);
1609   }
parcelFLATBUFFERS_FINAL_CLASS1610   const libtextclassifier3::EntityData_::ParcelTracking *parcel() const {
1611     return GetPointer<const libtextclassifier3::EntityData_::ParcelTracking *>(VT_PARCEL);
1612   }
moneyFLATBUFFERS_FINAL_CLASS1613   const libtextclassifier3::EntityData_::Money *money() const {
1614     return GetPointer<const libtextclassifier3::EntityData_::Money *>(VT_MONEY);
1615   }
translateFLATBUFFERS_FINAL_CLASS1616   const libtextclassifier3::EntityData_::Translate *translate() const {
1617     return GetPointer<const libtextclassifier3::EntityData_::Translate *>(VT_TRANSLATE);
1618   }
VerifyFLATBUFFERS_FINAL_CLASS1619   bool Verify(flatbuffers::Verifier &verifier) const {
1620     return VerifyTableStart(verifier) &&
1621            VerifyField<int32_t>(verifier, VT_START, 4) &&
1622            VerifyField<int32_t>(verifier, VT_END, 4) &&
1623            VerifyOffset(verifier, VT_TYPE) &&
1624            verifier.VerifyString(type()) &&
1625            VerifyOffset(verifier, VT_DATETIME) &&
1626            verifier.VerifyTable(datetime()) &&
1627            VerifyOffset(verifier, VT_CONTACT) &&
1628            verifier.VerifyTable(contact()) &&
1629            VerifyOffset(verifier, VT_APP) &&
1630            verifier.VerifyTable(app()) &&
1631            VerifyOffset(verifier, VT_PAYMENT_CARD) &&
1632            verifier.VerifyTable(payment_card()) &&
1633            VerifyOffset(verifier, VT_FLIGHT) &&
1634            verifier.VerifyTable(flight()) &&
1635            VerifyOffset(verifier, VT_ISBN) &&
1636            verifier.VerifyTable(isbn()) &&
1637            VerifyOffset(verifier, VT_IBAN) &&
1638            verifier.VerifyTable(iban()) &&
1639            VerifyOffset(verifier, VT_PARCEL) &&
1640            verifier.VerifyTable(parcel()) &&
1641            VerifyOffset(verifier, VT_MONEY) &&
1642            verifier.VerifyTable(money()) &&
1643            VerifyOffset(verifier, VT_TRANSLATE) &&
1644            verifier.VerifyTable(translate()) &&
1645            verifier.EndTable();
1646   }
1647   EntityDataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1648   void UnPackTo(EntityDataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1649   static flatbuffers::Offset<EntityData> Pack(flatbuffers::FlatBufferBuilder &_fbb, const EntityDataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1650 };
1651 
1652 struct EntityDataBuilder {
1653   typedef EntityData Table;
1654   flatbuffers::FlatBufferBuilder &fbb_;
1655   flatbuffers::uoffset_t start_;
add_startEntityDataBuilder1656   void add_start(int32_t start) {
1657     fbb_.AddElement<int32_t>(EntityData::VT_START, start, 0);
1658   }
add_endEntityDataBuilder1659   void add_end(int32_t end) {
1660     fbb_.AddElement<int32_t>(EntityData::VT_END, end, 0);
1661   }
add_typeEntityDataBuilder1662   void add_type(flatbuffers::Offset<flatbuffers::String> type) {
1663     fbb_.AddOffset(EntityData::VT_TYPE, type);
1664   }
add_datetimeEntityDataBuilder1665   void add_datetime(flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime> datetime) {
1666     fbb_.AddOffset(EntityData::VT_DATETIME, datetime);
1667   }
add_contactEntityDataBuilder1668   void add_contact(flatbuffers::Offset<libtextclassifier3::EntityData_::Contact> contact) {
1669     fbb_.AddOffset(EntityData::VT_CONTACT, contact);
1670   }
add_appEntityDataBuilder1671   void add_app(flatbuffers::Offset<libtextclassifier3::EntityData_::App> app) {
1672     fbb_.AddOffset(EntityData::VT_APP, app);
1673   }
add_payment_cardEntityDataBuilder1674   void add_payment_card(flatbuffers::Offset<libtextclassifier3::EntityData_::PaymentCard> payment_card) {
1675     fbb_.AddOffset(EntityData::VT_PAYMENT_CARD, payment_card);
1676   }
add_flightEntityDataBuilder1677   void add_flight(flatbuffers::Offset<libtextclassifier3::EntityData_::Flight> flight) {
1678     fbb_.AddOffset(EntityData::VT_FLIGHT, flight);
1679   }
add_isbnEntityDataBuilder1680   void add_isbn(flatbuffers::Offset<libtextclassifier3::EntityData_::Isbn> isbn) {
1681     fbb_.AddOffset(EntityData::VT_ISBN, isbn);
1682   }
add_ibanEntityDataBuilder1683   void add_iban(flatbuffers::Offset<libtextclassifier3::EntityData_::Iban> iban) {
1684     fbb_.AddOffset(EntityData::VT_IBAN, iban);
1685   }
add_parcelEntityDataBuilder1686   void add_parcel(flatbuffers::Offset<libtextclassifier3::EntityData_::ParcelTracking> parcel) {
1687     fbb_.AddOffset(EntityData::VT_PARCEL, parcel);
1688   }
add_moneyEntityDataBuilder1689   void add_money(flatbuffers::Offset<libtextclassifier3::EntityData_::Money> money) {
1690     fbb_.AddOffset(EntityData::VT_MONEY, money);
1691   }
add_translateEntityDataBuilder1692   void add_translate(flatbuffers::Offset<libtextclassifier3::EntityData_::Translate> translate) {
1693     fbb_.AddOffset(EntityData::VT_TRANSLATE, translate);
1694   }
EntityDataBuilderEntityDataBuilder1695   explicit EntityDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1696         : fbb_(_fbb) {
1697     start_ = fbb_.StartTable();
1698   }
FinishEntityDataBuilder1699   flatbuffers::Offset<EntityData> Finish() {
1700     const auto end = fbb_.EndTable(start_);
1701     auto o = flatbuffers::Offset<EntityData>(end);
1702     return o;
1703   }
1704 };
1705 
1706 inline flatbuffers::Offset<EntityData> CreateEntityData(
1707     flatbuffers::FlatBufferBuilder &_fbb,
1708     int32_t start = 0,
1709     int32_t end = 0,
1710     flatbuffers::Offset<flatbuffers::String> type = 0,
1711     flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime> datetime = 0,
1712     flatbuffers::Offset<libtextclassifier3::EntityData_::Contact> contact = 0,
1713     flatbuffers::Offset<libtextclassifier3::EntityData_::App> app = 0,
1714     flatbuffers::Offset<libtextclassifier3::EntityData_::PaymentCard> payment_card = 0,
1715     flatbuffers::Offset<libtextclassifier3::EntityData_::Flight> flight = 0,
1716     flatbuffers::Offset<libtextclassifier3::EntityData_::Isbn> isbn = 0,
1717     flatbuffers::Offset<libtextclassifier3::EntityData_::Iban> iban = 0,
1718     flatbuffers::Offset<libtextclassifier3::EntityData_::ParcelTracking> parcel = 0,
1719     flatbuffers::Offset<libtextclassifier3::EntityData_::Money> money = 0,
1720     flatbuffers::Offset<libtextclassifier3::EntityData_::Translate> translate = 0) {
1721   EntityDataBuilder builder_(_fbb);
1722   builder_.add_translate(translate);
1723   builder_.add_money(money);
1724   builder_.add_parcel(parcel);
1725   builder_.add_iban(iban);
1726   builder_.add_isbn(isbn);
1727   builder_.add_flight(flight);
1728   builder_.add_payment_card(payment_card);
1729   builder_.add_app(app);
1730   builder_.add_contact(contact);
1731   builder_.add_datetime(datetime);
1732   builder_.add_type(type);
1733   builder_.add_end(end);
1734   builder_.add_start(start);
1735   return builder_.Finish();
1736 }
1737 
1738 inline flatbuffers::Offset<EntityData> CreateEntityDataDirect(
1739     flatbuffers::FlatBufferBuilder &_fbb,
1740     int32_t start = 0,
1741     int32_t end = 0,
1742     const char *type = nullptr,
1743     flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime> datetime = 0,
1744     flatbuffers::Offset<libtextclassifier3::EntityData_::Contact> contact = 0,
1745     flatbuffers::Offset<libtextclassifier3::EntityData_::App> app = 0,
1746     flatbuffers::Offset<libtextclassifier3::EntityData_::PaymentCard> payment_card = 0,
1747     flatbuffers::Offset<libtextclassifier3::EntityData_::Flight> flight = 0,
1748     flatbuffers::Offset<libtextclassifier3::EntityData_::Isbn> isbn = 0,
1749     flatbuffers::Offset<libtextclassifier3::EntityData_::Iban> iban = 0,
1750     flatbuffers::Offset<libtextclassifier3::EntityData_::ParcelTracking> parcel = 0,
1751     flatbuffers::Offset<libtextclassifier3::EntityData_::Money> money = 0,
1752     flatbuffers::Offset<libtextclassifier3::EntityData_::Translate> translate = 0) {
1753   auto type__ = type ? _fbb.CreateSharedString(type) : 0;
1754   return libtextclassifier3::CreateEntityData(
1755       _fbb,
1756       start,
1757       end,
1758       type__,
1759       datetime,
1760       contact,
1761       app,
1762       payment_card,
1763       flight,
1764       isbn,
1765       iban,
1766       parcel,
1767       money,
1768       translate);
1769 }
1770 
1771 flatbuffers::Offset<EntityData> CreateEntityData(flatbuffers::FlatBufferBuilder &_fbb, const EntityDataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1772 
1773 namespace EntityData_ {
1774 namespace Datetime_ {
1775 
UnPack(const flatbuffers::resolver_function_t * _resolver)1776 inline DatetimeComponentT *DatetimeComponent::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1777   auto _o = std::unique_ptr<DatetimeComponentT>(new DatetimeComponentT());
1778   UnPackTo(_o.get(), _resolver);
1779   return _o.release();
1780 }
1781 
UnPackTo(DatetimeComponentT * _o,const flatbuffers::resolver_function_t * _resolver)1782 inline void DatetimeComponent::UnPackTo(DatetimeComponentT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1783   (void)_o;
1784   (void)_resolver;
1785   { auto _e = component_type(); _o->component_type = _e; }
1786   { auto _e = absolute_value(); _o->absolute_value = _e; }
1787   { auto _e = relative_count(); _o->relative_count = _e; }
1788   { auto _e = relation_type(); _o->relation_type = _e; }
1789 }
1790 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const DatetimeComponentT * _o,const flatbuffers::rehasher_function_t * _rehasher)1791 inline flatbuffers::Offset<DatetimeComponent> DatetimeComponent::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeComponentT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1792   return CreateDatetimeComponent(_fbb, _o, _rehasher);
1793 }
1794 
CreateDatetimeComponent(flatbuffers::FlatBufferBuilder & _fbb,const DatetimeComponentT * _o,const flatbuffers::rehasher_function_t * _rehasher)1795 inline flatbuffers::Offset<DatetimeComponent> CreateDatetimeComponent(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeComponentT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1796   (void)_rehasher;
1797   (void)_o;
1798   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DatetimeComponentT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1799   auto _component_type = _o->component_type;
1800   auto _absolute_value = _o->absolute_value;
1801   auto _relative_count = _o->relative_count;
1802   auto _relation_type = _o->relation_type;
1803   return libtextclassifier3::EntityData_::Datetime_::CreateDatetimeComponent(
1804       _fbb,
1805       _component_type,
1806       _absolute_value,
1807       _relative_count,
1808       _relation_type);
1809 }
1810 
1811 }  // namespace Datetime_
1812 
DatetimeT(const DatetimeT & o)1813 inline DatetimeT::DatetimeT(const DatetimeT &o)
1814       : time_ms_utc(o.time_ms_utc),
1815         granularity(o.granularity) {
1816   datetime_component.reserve(o.datetime_component.size());
1817   for (const auto &datetime_component_ : o.datetime_component) { datetime_component.emplace_back((datetime_component_) ? new libtextclassifier3::EntityData_::Datetime_::DatetimeComponentT(*datetime_component_) : nullptr); }
1818 }
1819 
1820 inline DatetimeT &DatetimeT::operator=(DatetimeT o) FLATBUFFERS_NOEXCEPT {
1821   std::swap(time_ms_utc, o.time_ms_utc);
1822   std::swap(granularity, o.granularity);
1823   std::swap(datetime_component, o.datetime_component);
1824   return *this;
1825 }
1826 
UnPack(const flatbuffers::resolver_function_t * _resolver)1827 inline DatetimeT *Datetime::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1828   auto _o = std::unique_ptr<DatetimeT>(new DatetimeT());
1829   UnPackTo(_o.get(), _resolver);
1830   return _o.release();
1831 }
1832 
UnPackTo(DatetimeT * _o,const flatbuffers::resolver_function_t * _resolver)1833 inline void Datetime::UnPackTo(DatetimeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1834   (void)_o;
1835   (void)_resolver;
1836   { auto _e = time_ms_utc(); _o->time_ms_utc = _e; }
1837   { auto _e = granularity(); _o->granularity = _e; }
1838   { auto _e = datetime_component(); if (_e) { _o->datetime_component.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->datetime_component[_i] = std::unique_ptr<libtextclassifier3::EntityData_::Datetime_::DatetimeComponentT>(_e->Get(_i)->UnPack(_resolver)); } } }
1839 }
1840 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const DatetimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)1841 inline flatbuffers::Offset<Datetime> Datetime::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1842   return CreateDatetime(_fbb, _o, _rehasher);
1843 }
1844 
CreateDatetime(flatbuffers::FlatBufferBuilder & _fbb,const DatetimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)1845 inline flatbuffers::Offset<Datetime> CreateDatetime(flatbuffers::FlatBufferBuilder &_fbb, const DatetimeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1846   (void)_rehasher;
1847   (void)_o;
1848   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DatetimeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1849   auto _time_ms_utc = _o->time_ms_utc;
1850   auto _granularity = _o->granularity;
1851   auto _datetime_component = _o->datetime_component.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::EntityData_::Datetime_::DatetimeComponent>> (_o->datetime_component.size(), [](size_t i, _VectorArgs *__va) { return CreateDatetimeComponent(*__va->__fbb, __va->__o->datetime_component[i].get(), __va->__rehasher); }, &_va ) : 0;
1852   return libtextclassifier3::EntityData_::CreateDatetime(
1853       _fbb,
1854       _time_ms_utc,
1855       _granularity,
1856       _datetime_component);
1857 }
1858 
1859 namespace Contact_ {
1860 
UnPack(const flatbuffers::resolver_function_t * _resolver)1861 inline AlternativeNameInfoT *AlternativeNameInfo::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1862   auto _o = std::unique_ptr<AlternativeNameInfoT>(new AlternativeNameInfoT());
1863   UnPackTo(_o.get(), _resolver);
1864   return _o.release();
1865 }
1866 
UnPackTo(AlternativeNameInfoT * _o,const flatbuffers::resolver_function_t * _resolver)1867 inline void AlternativeNameInfo::UnPackTo(AlternativeNameInfoT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1868   (void)_o;
1869   (void)_resolver;
1870   { auto _e = name(); if (_e) _o->name = _e->str(); }
1871   { auto _e = source(); _o->source = _e; }
1872 }
1873 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AlternativeNameInfoT * _o,const flatbuffers::rehasher_function_t * _rehasher)1874 inline flatbuffers::Offset<AlternativeNameInfo> AlternativeNameInfo::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AlternativeNameInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1875   return CreateAlternativeNameInfo(_fbb, _o, _rehasher);
1876 }
1877 
CreateAlternativeNameInfo(flatbuffers::FlatBufferBuilder & _fbb,const AlternativeNameInfoT * _o,const flatbuffers::rehasher_function_t * _rehasher)1878 inline flatbuffers::Offset<AlternativeNameInfo> CreateAlternativeNameInfo(flatbuffers::FlatBufferBuilder &_fbb, const AlternativeNameInfoT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1879   (void)_rehasher;
1880   (void)_o;
1881   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AlternativeNameInfoT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1882   auto _name = _o->name.empty() ? 0 : _fbb.CreateSharedString(_o->name);
1883   auto _source = _o->source;
1884   return libtextclassifier3::EntityData_::Contact_::CreateAlternativeNameInfo(
1885       _fbb,
1886       _name,
1887       _source);
1888 }
1889 
1890 }  // namespace Contact_
1891 
ContactT(const ContactT & o)1892 inline ContactT::ContactT(const ContactT &o)
1893       : name(o.name),
1894         given_name(o.given_name),
1895         nickname(o.nickname),
1896         email_address(o.email_address),
1897         phone_number(o.phone_number),
1898         contact_id(o.contact_id) {
1899   alternative_name_info.reserve(o.alternative_name_info.size());
1900   for (const auto &alternative_name_info_ : o.alternative_name_info) { alternative_name_info.emplace_back((alternative_name_info_) ? new libtextclassifier3::EntityData_::Contact_::AlternativeNameInfoT(*alternative_name_info_) : nullptr); }
1901 }
1902 
1903 inline ContactT &ContactT::operator=(ContactT o) FLATBUFFERS_NOEXCEPT {
1904   std::swap(name, o.name);
1905   std::swap(given_name, o.given_name);
1906   std::swap(nickname, o.nickname);
1907   std::swap(email_address, o.email_address);
1908   std::swap(phone_number, o.phone_number);
1909   std::swap(contact_id, o.contact_id);
1910   std::swap(alternative_name_info, o.alternative_name_info);
1911   return *this;
1912 }
1913 
UnPack(const flatbuffers::resolver_function_t * _resolver)1914 inline ContactT *Contact::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1915   auto _o = std::unique_ptr<ContactT>(new ContactT());
1916   UnPackTo(_o.get(), _resolver);
1917   return _o.release();
1918 }
1919 
UnPackTo(ContactT * _o,const flatbuffers::resolver_function_t * _resolver)1920 inline void Contact::UnPackTo(ContactT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1921   (void)_o;
1922   (void)_resolver;
1923   { auto _e = name(); if (_e) _o->name = _e->str(); }
1924   { auto _e = given_name(); if (_e) _o->given_name = _e->str(); }
1925   { auto _e = nickname(); if (_e) _o->nickname = _e->str(); }
1926   { auto _e = email_address(); if (_e) _o->email_address = _e->str(); }
1927   { auto _e = phone_number(); if (_e) _o->phone_number = _e->str(); }
1928   { auto _e = contact_id(); if (_e) _o->contact_id = _e->str(); }
1929   { auto _e = alternative_name_info(); if (_e) { _o->alternative_name_info.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->alternative_name_info[_i] = std::unique_ptr<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfoT>(_e->Get(_i)->UnPack(_resolver)); } } }
1930 }
1931 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ContactT * _o,const flatbuffers::rehasher_function_t * _rehasher)1932 inline flatbuffers::Offset<Contact> Contact::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ContactT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1933   return CreateContact(_fbb, _o, _rehasher);
1934 }
1935 
CreateContact(flatbuffers::FlatBufferBuilder & _fbb,const ContactT * _o,const flatbuffers::rehasher_function_t * _rehasher)1936 inline flatbuffers::Offset<Contact> CreateContact(flatbuffers::FlatBufferBuilder &_fbb, const ContactT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1937   (void)_rehasher;
1938   (void)_o;
1939   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ContactT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1940   auto _name = _o->name.empty() ? 0 : _fbb.CreateSharedString(_o->name);
1941   auto _given_name = _o->given_name.empty() ? 0 : _fbb.CreateSharedString(_o->given_name);
1942   auto _nickname = _o->nickname.empty() ? 0 : _fbb.CreateSharedString(_o->nickname);
1943   auto _email_address = _o->email_address.empty() ? 0 : _fbb.CreateSharedString(_o->email_address);
1944   auto _phone_number = _o->phone_number.empty() ? 0 : _fbb.CreateSharedString(_o->phone_number);
1945   auto _contact_id = _o->contact_id.empty() ? 0 : _fbb.CreateSharedString(_o->contact_id);
1946   auto _alternative_name_info = _o->alternative_name_info.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::EntityData_::Contact_::AlternativeNameInfo>> (_o->alternative_name_info.size(), [](size_t i, _VectorArgs *__va) { return CreateAlternativeNameInfo(*__va->__fbb, __va->__o->alternative_name_info[i].get(), __va->__rehasher); }, &_va ) : 0;
1947   return libtextclassifier3::EntityData_::CreateContact(
1948       _fbb,
1949       _name,
1950       _given_name,
1951       _nickname,
1952       _email_address,
1953       _phone_number,
1954       _contact_id,
1955       _alternative_name_info);
1956 }
1957 
UnPack(const flatbuffers::resolver_function_t * _resolver)1958 inline AppT *App::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1959   auto _o = std::unique_ptr<AppT>(new AppT());
1960   UnPackTo(_o.get(), _resolver);
1961   return _o.release();
1962 }
1963 
UnPackTo(AppT * _o,const flatbuffers::resolver_function_t * _resolver)1964 inline void App::UnPackTo(AppT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1965   (void)_o;
1966   (void)_resolver;
1967   { auto _e = name(); if (_e) _o->name = _e->str(); }
1968   { auto _e = package_name(); if (_e) _o->package_name = _e->str(); }
1969 }
1970 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AppT * _o,const flatbuffers::rehasher_function_t * _rehasher)1971 inline flatbuffers::Offset<App> App::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AppT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1972   return CreateApp(_fbb, _o, _rehasher);
1973 }
1974 
CreateApp(flatbuffers::FlatBufferBuilder & _fbb,const AppT * _o,const flatbuffers::rehasher_function_t * _rehasher)1975 inline flatbuffers::Offset<App> CreateApp(flatbuffers::FlatBufferBuilder &_fbb, const AppT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1976   (void)_rehasher;
1977   (void)_o;
1978   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AppT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1979   auto _name = _o->name.empty() ? 0 : _fbb.CreateSharedString(_o->name);
1980   auto _package_name = _o->package_name.empty() ? 0 : _fbb.CreateSharedString(_o->package_name);
1981   return libtextclassifier3::EntityData_::CreateApp(
1982       _fbb,
1983       _name,
1984       _package_name);
1985 }
1986 
UnPack(const flatbuffers::resolver_function_t * _resolver)1987 inline PaymentCardT *PaymentCard::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1988   auto _o = std::unique_ptr<PaymentCardT>(new PaymentCardT());
1989   UnPackTo(_o.get(), _resolver);
1990   return _o.release();
1991 }
1992 
UnPackTo(PaymentCardT * _o,const flatbuffers::resolver_function_t * _resolver)1993 inline void PaymentCard::UnPackTo(PaymentCardT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1994   (void)_o;
1995   (void)_resolver;
1996   { auto _e = card_network(); _o->card_network = _e; }
1997   { auto _e = card_number(); if (_e) _o->card_number = _e->str(); }
1998 }
1999 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const PaymentCardT * _o,const flatbuffers::rehasher_function_t * _rehasher)2000 inline flatbuffers::Offset<PaymentCard> PaymentCard::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PaymentCardT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2001   return CreatePaymentCard(_fbb, _o, _rehasher);
2002 }
2003 
CreatePaymentCard(flatbuffers::FlatBufferBuilder & _fbb,const PaymentCardT * _o,const flatbuffers::rehasher_function_t * _rehasher)2004 inline flatbuffers::Offset<PaymentCard> CreatePaymentCard(flatbuffers::FlatBufferBuilder &_fbb, const PaymentCardT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2005   (void)_rehasher;
2006   (void)_o;
2007   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PaymentCardT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2008   auto _card_network = _o->card_network;
2009   auto _card_number = _o->card_number.empty() ? 0 : _fbb.CreateSharedString(_o->card_number);
2010   return libtextclassifier3::EntityData_::CreatePaymentCard(
2011       _fbb,
2012       _card_network,
2013       _card_number);
2014 }
2015 
UnPack(const flatbuffers::resolver_function_t * _resolver)2016 inline FlightT *Flight::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2017   auto _o = std::unique_ptr<FlightT>(new FlightT());
2018   UnPackTo(_o.get(), _resolver);
2019   return _o.release();
2020 }
2021 
UnPackTo(FlightT * _o,const flatbuffers::resolver_function_t * _resolver)2022 inline void Flight::UnPackTo(FlightT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2023   (void)_o;
2024   (void)_resolver;
2025   { auto _e = airline_code(); if (_e) _o->airline_code = _e->str(); }
2026   { auto _e = flight_number(); if (_e) _o->flight_number = _e->str(); }
2027 }
2028 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const FlightT * _o,const flatbuffers::rehasher_function_t * _rehasher)2029 inline flatbuffers::Offset<Flight> Flight::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FlightT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2030   return CreateFlight(_fbb, _o, _rehasher);
2031 }
2032 
CreateFlight(flatbuffers::FlatBufferBuilder & _fbb,const FlightT * _o,const flatbuffers::rehasher_function_t * _rehasher)2033 inline flatbuffers::Offset<Flight> CreateFlight(flatbuffers::FlatBufferBuilder &_fbb, const FlightT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2034   (void)_rehasher;
2035   (void)_o;
2036   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FlightT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2037   auto _airline_code = _o->airline_code.empty() ? 0 : _fbb.CreateSharedString(_o->airline_code);
2038   auto _flight_number = _o->flight_number.empty() ? 0 : _fbb.CreateSharedString(_o->flight_number);
2039   return libtextclassifier3::EntityData_::CreateFlight(
2040       _fbb,
2041       _airline_code,
2042       _flight_number);
2043 }
2044 
UnPack(const flatbuffers::resolver_function_t * _resolver)2045 inline IsbnT *Isbn::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2046   auto _o = std::unique_ptr<IsbnT>(new IsbnT());
2047   UnPackTo(_o.get(), _resolver);
2048   return _o.release();
2049 }
2050 
UnPackTo(IsbnT * _o,const flatbuffers::resolver_function_t * _resolver)2051 inline void Isbn::UnPackTo(IsbnT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2052   (void)_o;
2053   (void)_resolver;
2054   { auto _e = number(); if (_e) _o->number = _e->str(); }
2055 }
2056 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const IsbnT * _o,const flatbuffers::rehasher_function_t * _rehasher)2057 inline flatbuffers::Offset<Isbn> Isbn::Pack(flatbuffers::FlatBufferBuilder &_fbb, const IsbnT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2058   return CreateIsbn(_fbb, _o, _rehasher);
2059 }
2060 
CreateIsbn(flatbuffers::FlatBufferBuilder & _fbb,const IsbnT * _o,const flatbuffers::rehasher_function_t * _rehasher)2061 inline flatbuffers::Offset<Isbn> CreateIsbn(flatbuffers::FlatBufferBuilder &_fbb, const IsbnT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2062   (void)_rehasher;
2063   (void)_o;
2064   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const IsbnT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2065   auto _number = _o->number.empty() ? 0 : _fbb.CreateSharedString(_o->number);
2066   return libtextclassifier3::EntityData_::CreateIsbn(
2067       _fbb,
2068       _number);
2069 }
2070 
UnPack(const flatbuffers::resolver_function_t * _resolver)2071 inline IbanT *Iban::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2072   auto _o = std::unique_ptr<IbanT>(new IbanT());
2073   UnPackTo(_o.get(), _resolver);
2074   return _o.release();
2075 }
2076 
UnPackTo(IbanT * _o,const flatbuffers::resolver_function_t * _resolver)2077 inline void Iban::UnPackTo(IbanT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2078   (void)_o;
2079   (void)_resolver;
2080   { auto _e = number(); if (_e) _o->number = _e->str(); }
2081   { auto _e = country_code(); if (_e) _o->country_code = _e->str(); }
2082 }
2083 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const IbanT * _o,const flatbuffers::rehasher_function_t * _rehasher)2084 inline flatbuffers::Offset<Iban> Iban::Pack(flatbuffers::FlatBufferBuilder &_fbb, const IbanT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2085   return CreateIban(_fbb, _o, _rehasher);
2086 }
2087 
CreateIban(flatbuffers::FlatBufferBuilder & _fbb,const IbanT * _o,const flatbuffers::rehasher_function_t * _rehasher)2088 inline flatbuffers::Offset<Iban> CreateIban(flatbuffers::FlatBufferBuilder &_fbb, const IbanT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2089   (void)_rehasher;
2090   (void)_o;
2091   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const IbanT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2092   auto _number = _o->number.empty() ? 0 : _fbb.CreateSharedString(_o->number);
2093   auto _country_code = _o->country_code.empty() ? 0 : _fbb.CreateSharedString(_o->country_code);
2094   return libtextclassifier3::EntityData_::CreateIban(
2095       _fbb,
2096       _number,
2097       _country_code);
2098 }
2099 
UnPack(const flatbuffers::resolver_function_t * _resolver)2100 inline ParcelTrackingT *ParcelTracking::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2101   auto _o = std::unique_ptr<ParcelTrackingT>(new ParcelTrackingT());
2102   UnPackTo(_o.get(), _resolver);
2103   return _o.release();
2104 }
2105 
UnPackTo(ParcelTrackingT * _o,const flatbuffers::resolver_function_t * _resolver)2106 inline void ParcelTracking::UnPackTo(ParcelTrackingT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2107   (void)_o;
2108   (void)_resolver;
2109   { auto _e = carrier(); _o->carrier = _e; }
2110   { auto _e = tracking_number(); if (_e) _o->tracking_number = _e->str(); }
2111 }
2112 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ParcelTrackingT * _o,const flatbuffers::rehasher_function_t * _rehasher)2113 inline flatbuffers::Offset<ParcelTracking> ParcelTracking::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ParcelTrackingT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2114   return CreateParcelTracking(_fbb, _o, _rehasher);
2115 }
2116 
CreateParcelTracking(flatbuffers::FlatBufferBuilder & _fbb,const ParcelTrackingT * _o,const flatbuffers::rehasher_function_t * _rehasher)2117 inline flatbuffers::Offset<ParcelTracking> CreateParcelTracking(flatbuffers::FlatBufferBuilder &_fbb, const ParcelTrackingT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2118   (void)_rehasher;
2119   (void)_o;
2120   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ParcelTrackingT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2121   auto _carrier = _o->carrier;
2122   auto _tracking_number = _o->tracking_number.empty() ? 0 : _fbb.CreateSharedString(_o->tracking_number);
2123   return libtextclassifier3::EntityData_::CreateParcelTracking(
2124       _fbb,
2125       _carrier,
2126       _tracking_number);
2127 }
2128 
UnPack(const flatbuffers::resolver_function_t * _resolver)2129 inline MoneyT *Money::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2130   auto _o = std::unique_ptr<MoneyT>(new MoneyT());
2131   UnPackTo(_o.get(), _resolver);
2132   return _o.release();
2133 }
2134 
UnPackTo(MoneyT * _o,const flatbuffers::resolver_function_t * _resolver)2135 inline void Money::UnPackTo(MoneyT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2136   (void)_o;
2137   (void)_resolver;
2138   { auto _e = unnormalized_currency(); if (_e) _o->unnormalized_currency = _e->str(); }
2139   { auto _e = amount_whole_part(); _o->amount_whole_part = _e; }
2140   { auto _e = amount_decimal_part(); _o->amount_decimal_part = _e; }
2141   { auto _e = unnormalized_amount(); if (_e) _o->unnormalized_amount = _e->str(); }
2142   { auto _e = nanos(); _o->nanos = _e; }
2143   { auto _e = quantity(); if (_e) _o->quantity = _e->str(); }
2144 }
2145 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const MoneyT * _o,const flatbuffers::rehasher_function_t * _rehasher)2146 inline flatbuffers::Offset<Money> Money::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MoneyT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2147   return CreateMoney(_fbb, _o, _rehasher);
2148 }
2149 
CreateMoney(flatbuffers::FlatBufferBuilder & _fbb,const MoneyT * _o,const flatbuffers::rehasher_function_t * _rehasher)2150 inline flatbuffers::Offset<Money> CreateMoney(flatbuffers::FlatBufferBuilder &_fbb, const MoneyT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2151   (void)_rehasher;
2152   (void)_o;
2153   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MoneyT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2154   auto _unnormalized_currency = _o->unnormalized_currency.empty() ? 0 : _fbb.CreateSharedString(_o->unnormalized_currency);
2155   auto _amount_whole_part = _o->amount_whole_part;
2156   auto _amount_decimal_part = _o->amount_decimal_part;
2157   auto _unnormalized_amount = _o->unnormalized_amount.empty() ? 0 : _fbb.CreateSharedString(_o->unnormalized_amount);
2158   auto _nanos = _o->nanos;
2159   auto _quantity = _o->quantity.empty() ? 0 : _fbb.CreateSharedString(_o->quantity);
2160   return libtextclassifier3::EntityData_::CreateMoney(
2161       _fbb,
2162       _unnormalized_currency,
2163       _amount_whole_part,
2164       _amount_decimal_part,
2165       _unnormalized_amount,
2166       _nanos,
2167       _quantity);
2168 }
2169 
2170 namespace Translate_ {
2171 
UnPack(const flatbuffers::resolver_function_t * _resolver)2172 inline LanguagePredictionResultT *LanguagePredictionResult::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2173   auto _o = std::unique_ptr<LanguagePredictionResultT>(new LanguagePredictionResultT());
2174   UnPackTo(_o.get(), _resolver);
2175   return _o.release();
2176 }
2177 
UnPackTo(LanguagePredictionResultT * _o,const flatbuffers::resolver_function_t * _resolver)2178 inline void LanguagePredictionResult::UnPackTo(LanguagePredictionResultT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2179   (void)_o;
2180   (void)_resolver;
2181   { auto _e = language_tag(); if (_e) _o->language_tag = _e->str(); }
2182   { auto _e = confidence_score(); _o->confidence_score = _e; }
2183 }
2184 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const LanguagePredictionResultT * _o,const flatbuffers::rehasher_function_t * _rehasher)2185 inline flatbuffers::Offset<LanguagePredictionResult> LanguagePredictionResult::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LanguagePredictionResultT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2186   return CreateLanguagePredictionResult(_fbb, _o, _rehasher);
2187 }
2188 
CreateLanguagePredictionResult(flatbuffers::FlatBufferBuilder & _fbb,const LanguagePredictionResultT * _o,const flatbuffers::rehasher_function_t * _rehasher)2189 inline flatbuffers::Offset<LanguagePredictionResult> CreateLanguagePredictionResult(flatbuffers::FlatBufferBuilder &_fbb, const LanguagePredictionResultT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2190   (void)_rehasher;
2191   (void)_o;
2192   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LanguagePredictionResultT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2193   auto _language_tag = _o->language_tag.empty() ? 0 : _fbb.CreateSharedString(_o->language_tag);
2194   auto _confidence_score = _o->confidence_score;
2195   return libtextclassifier3::EntityData_::Translate_::CreateLanguagePredictionResult(
2196       _fbb,
2197       _language_tag,
2198       _confidence_score);
2199 }
2200 
2201 }  // namespace Translate_
2202 
TranslateT(const TranslateT & o)2203 inline TranslateT::TranslateT(const TranslateT &o) {
2204   language_prediction_results.reserve(o.language_prediction_results.size());
2205   for (const auto &language_prediction_results_ : o.language_prediction_results) { language_prediction_results.emplace_back((language_prediction_results_) ? new libtextclassifier3::EntityData_::Translate_::LanguagePredictionResultT(*language_prediction_results_) : nullptr); }
2206 }
2207 
2208 inline TranslateT &TranslateT::operator=(TranslateT o) FLATBUFFERS_NOEXCEPT {
2209   std::swap(language_prediction_results, o.language_prediction_results);
2210   return *this;
2211 }
2212 
UnPack(const flatbuffers::resolver_function_t * _resolver)2213 inline TranslateT *Translate::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2214   auto _o = std::unique_ptr<TranslateT>(new TranslateT());
2215   UnPackTo(_o.get(), _resolver);
2216   return _o.release();
2217 }
2218 
UnPackTo(TranslateT * _o,const flatbuffers::resolver_function_t * _resolver)2219 inline void Translate::UnPackTo(TranslateT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2220   (void)_o;
2221   (void)_resolver;
2222   { auto _e = language_prediction_results(); if (_e) { _o->language_prediction_results.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->language_prediction_results[_i] = std::unique_ptr<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResultT>(_e->Get(_i)->UnPack(_resolver)); } } }
2223 }
2224 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TranslateT * _o,const flatbuffers::rehasher_function_t * _rehasher)2225 inline flatbuffers::Offset<Translate> Translate::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TranslateT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2226   return CreateTranslate(_fbb, _o, _rehasher);
2227 }
2228 
CreateTranslate(flatbuffers::FlatBufferBuilder & _fbb,const TranslateT * _o,const flatbuffers::rehasher_function_t * _rehasher)2229 inline flatbuffers::Offset<Translate> CreateTranslate(flatbuffers::FlatBufferBuilder &_fbb, const TranslateT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2230   (void)_rehasher;
2231   (void)_o;
2232   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TranslateT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2233   auto _language_prediction_results = _o->language_prediction_results.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::EntityData_::Translate_::LanguagePredictionResult>> (_o->language_prediction_results.size(), [](size_t i, _VectorArgs *__va) { return CreateLanguagePredictionResult(*__va->__fbb, __va->__o->language_prediction_results[i].get(), __va->__rehasher); }, &_va ) : 0;
2234   return libtextclassifier3::EntityData_::CreateTranslate(
2235       _fbb,
2236       _language_prediction_results);
2237 }
2238 
2239 }  // namespace EntityData_
2240 
EntityDataT(const EntityDataT & o)2241 inline EntityDataT::EntityDataT(const EntityDataT &o)
2242       : start(o.start),
2243         end(o.end),
2244         type(o.type),
2245         datetime((o.datetime) ? new libtextclassifier3::EntityData_::DatetimeT(*o.datetime) : nullptr),
2246         contact((o.contact) ? new libtextclassifier3::EntityData_::ContactT(*o.contact) : nullptr),
2247         app((o.app) ? new libtextclassifier3::EntityData_::AppT(*o.app) : nullptr),
2248         payment_card((o.payment_card) ? new libtextclassifier3::EntityData_::PaymentCardT(*o.payment_card) : nullptr),
2249         flight((o.flight) ? new libtextclassifier3::EntityData_::FlightT(*o.flight) : nullptr),
2250         isbn((o.isbn) ? new libtextclassifier3::EntityData_::IsbnT(*o.isbn) : nullptr),
2251         iban((o.iban) ? new libtextclassifier3::EntityData_::IbanT(*o.iban) : nullptr),
2252         parcel((o.parcel) ? new libtextclassifier3::EntityData_::ParcelTrackingT(*o.parcel) : nullptr),
2253         money((o.money) ? new libtextclassifier3::EntityData_::MoneyT(*o.money) : nullptr),
2254         translate((o.translate) ? new libtextclassifier3::EntityData_::TranslateT(*o.translate) : nullptr) {
2255 }
2256 
2257 inline EntityDataT &EntityDataT::operator=(EntityDataT o) FLATBUFFERS_NOEXCEPT {
2258   std::swap(start, o.start);
2259   std::swap(end, o.end);
2260   std::swap(type, o.type);
2261   std::swap(datetime, o.datetime);
2262   std::swap(contact, o.contact);
2263   std::swap(app, o.app);
2264   std::swap(payment_card, o.payment_card);
2265   std::swap(flight, o.flight);
2266   std::swap(isbn, o.isbn);
2267   std::swap(iban, o.iban);
2268   std::swap(parcel, o.parcel);
2269   std::swap(money, o.money);
2270   std::swap(translate, o.translate);
2271   return *this;
2272 }
2273 
UnPack(const flatbuffers::resolver_function_t * _resolver)2274 inline EntityDataT *EntityData::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2275   auto _o = std::unique_ptr<EntityDataT>(new EntityDataT());
2276   UnPackTo(_o.get(), _resolver);
2277   return _o.release();
2278 }
2279 
UnPackTo(EntityDataT * _o,const flatbuffers::resolver_function_t * _resolver)2280 inline void EntityData::UnPackTo(EntityDataT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2281   (void)_o;
2282   (void)_resolver;
2283   { auto _e = start(); _o->start = _e; }
2284   { auto _e = end(); _o->end = _e; }
2285   { auto _e = type(); if (_e) _o->type = _e->str(); }
2286   { auto _e = datetime(); if (_e) _o->datetime = std::unique_ptr<libtextclassifier3::EntityData_::DatetimeT>(_e->UnPack(_resolver)); }
2287   { auto _e = contact(); if (_e) _o->contact = std::unique_ptr<libtextclassifier3::EntityData_::ContactT>(_e->UnPack(_resolver)); }
2288   { auto _e = app(); if (_e) _o->app = std::unique_ptr<libtextclassifier3::EntityData_::AppT>(_e->UnPack(_resolver)); }
2289   { auto _e = payment_card(); if (_e) _o->payment_card = std::unique_ptr<libtextclassifier3::EntityData_::PaymentCardT>(_e->UnPack(_resolver)); }
2290   { auto _e = flight(); if (_e) _o->flight = std::unique_ptr<libtextclassifier3::EntityData_::FlightT>(_e->UnPack(_resolver)); }
2291   { auto _e = isbn(); if (_e) _o->isbn = std::unique_ptr<libtextclassifier3::EntityData_::IsbnT>(_e->UnPack(_resolver)); }
2292   { auto _e = iban(); if (_e) _o->iban = std::unique_ptr<libtextclassifier3::EntityData_::IbanT>(_e->UnPack(_resolver)); }
2293   { auto _e = parcel(); if (_e) _o->parcel = std::unique_ptr<libtextclassifier3::EntityData_::ParcelTrackingT>(_e->UnPack(_resolver)); }
2294   { auto _e = money(); if (_e) _o->money = std::unique_ptr<libtextclassifier3::EntityData_::MoneyT>(_e->UnPack(_resolver)); }
2295   { auto _e = translate(); if (_e) _o->translate = std::unique_ptr<libtextclassifier3::EntityData_::TranslateT>(_e->UnPack(_resolver)); }
2296 }
2297 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const EntityDataT * _o,const flatbuffers::rehasher_function_t * _rehasher)2298 inline flatbuffers::Offset<EntityData> EntityData::Pack(flatbuffers::FlatBufferBuilder &_fbb, const EntityDataT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2299   return CreateEntityData(_fbb, _o, _rehasher);
2300 }
2301 
CreateEntityData(flatbuffers::FlatBufferBuilder & _fbb,const EntityDataT * _o,const flatbuffers::rehasher_function_t * _rehasher)2302 inline flatbuffers::Offset<EntityData> CreateEntityData(flatbuffers::FlatBufferBuilder &_fbb, const EntityDataT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2303   (void)_rehasher;
2304   (void)_o;
2305   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const EntityDataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2306   auto _start = _o->start;
2307   auto _end = _o->end;
2308   auto _type = _o->type.empty() ? 0 : _fbb.CreateSharedString(_o->type);
2309   auto _datetime = _o->datetime ? CreateDatetime(_fbb, _o->datetime.get(), _rehasher) : 0;
2310   auto _contact = _o->contact ? CreateContact(_fbb, _o->contact.get(), _rehasher) : 0;
2311   auto _app = _o->app ? CreateApp(_fbb, _o->app.get(), _rehasher) : 0;
2312   auto _payment_card = _o->payment_card ? CreatePaymentCard(_fbb, _o->payment_card.get(), _rehasher) : 0;
2313   auto _flight = _o->flight ? CreateFlight(_fbb, _o->flight.get(), _rehasher) : 0;
2314   auto _isbn = _o->isbn ? CreateIsbn(_fbb, _o->isbn.get(), _rehasher) : 0;
2315   auto _iban = _o->iban ? CreateIban(_fbb, _o->iban.get(), _rehasher) : 0;
2316   auto _parcel = _o->parcel ? CreateParcelTracking(_fbb, _o->parcel.get(), _rehasher) : 0;
2317   auto _money = _o->money ? CreateMoney(_fbb, _o->money.get(), _rehasher) : 0;
2318   auto _translate = _o->translate ? CreateTranslate(_fbb, _o->translate.get(), _rehasher) : 0;
2319   return libtextclassifier3::CreateEntityData(
2320       _fbb,
2321       _start,
2322       _end,
2323       _type,
2324       _datetime,
2325       _contact,
2326       _app,
2327       _payment_card,
2328       _flight,
2329       _isbn,
2330       _iban,
2331       _parcel,
2332       _money,
2333       _translate);
2334 }
2335 
GetEntityData(const void * buf)2336 inline const libtextclassifier3::EntityData *GetEntityData(const void *buf) {
2337   return flatbuffers::GetRoot<libtextclassifier3::EntityData>(buf);
2338 }
2339 
GetSizePrefixedEntityData(const void * buf)2340 inline const libtextclassifier3::EntityData *GetSizePrefixedEntityData(const void *buf) {
2341   return flatbuffers::GetSizePrefixedRoot<libtextclassifier3::EntityData>(buf);
2342 }
2343 
VerifyEntityDataBuffer(flatbuffers::Verifier & verifier)2344 inline bool VerifyEntityDataBuffer(
2345     flatbuffers::Verifier &verifier) {
2346   return verifier.VerifyBuffer<libtextclassifier3::EntityData>(nullptr);
2347 }
2348 
VerifySizePrefixedEntityDataBuffer(flatbuffers::Verifier & verifier)2349 inline bool VerifySizePrefixedEntityDataBuffer(
2350     flatbuffers::Verifier &verifier) {
2351   return verifier.VerifySizePrefixedBuffer<libtextclassifier3::EntityData>(nullptr);
2352 }
2353 
FinishEntityDataBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<libtextclassifier3::EntityData> root)2354 inline void FinishEntityDataBuffer(
2355     flatbuffers::FlatBufferBuilder &fbb,
2356     flatbuffers::Offset<libtextclassifier3::EntityData> root) {
2357   fbb.Finish(root);
2358 }
2359 
FinishSizePrefixedEntityDataBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<libtextclassifier3::EntityData> root)2360 inline void FinishSizePrefixedEntityDataBuffer(
2361     flatbuffers::FlatBufferBuilder &fbb,
2362     flatbuffers::Offset<libtextclassifier3::EntityData> root) {
2363   fbb.FinishSizePrefixed(root);
2364 }
2365 
2366 inline std::unique_ptr<libtextclassifier3::EntityDataT> UnPackEntityData(
2367     const void *buf,
2368     const flatbuffers::resolver_function_t *res = nullptr) {
2369   return std::unique_ptr<libtextclassifier3::EntityDataT>(GetEntityData(buf)->UnPack(res));
2370 }
2371 
2372 inline std::unique_ptr<libtextclassifier3::EntityDataT> UnPackSizePrefixedEntityData(
2373     const void *buf,
2374     const flatbuffers::resolver_function_t *res = nullptr) {
2375   return std::unique_ptr<libtextclassifier3::EntityDataT>(GetSizePrefixedEntityData(buf)->UnPack(res));
2376 }
2377 
2378 }  // namespace libtextclassifier3
2379 
2380 #endif  // FLATBUFFERS_GENERATED_ENTITYDATA_LIBTEXTCLASSIFIER3_H_
2381