1 // automatically generated by the FlatBuffers compiler, do not modify
2
3
4 #ifndef FLATBUFFERS_GENERATED_DATETIME_LIBTEXTCLASSIFIER3_GRAMMAR_DATETIME_H_
5 #define FLATBUFFERS_GENERATED_DATETIME_LIBTEXTCLASSIFIER3_GRAMMAR_DATETIME_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 grammar {
18 namespace datetime {
19
20 struct TimeZone;
21 struct TimeZoneBuilder;
22 struct TimeZoneT;
23
24 struct RelativeDatetimeComponent;
25 struct RelativeDatetimeComponentBuilder;
26 struct RelativeDatetimeComponentT;
27
28 struct AbsoluteDateTime;
29 struct AbsoluteDateTimeBuilder;
30 struct AbsoluteDateTimeT;
31
32 struct RelativeDateTime;
33 struct RelativeDateTimeBuilder;
34 struct RelativeDateTimeT;
35
36 struct UngroundedDatetime;
37 struct UngroundedDatetimeBuilder;
38 struct UngroundedDatetimeT;
39
40 enum Meridiem : int32_t {
41 Meridiem_UNKNOWN = 0,
42 Meridiem_AM = 1,
43 Meridiem_PM = 2,
44 Meridiem_MIN = Meridiem_UNKNOWN,
45 Meridiem_MAX = Meridiem_PM
46 };
47
EnumValuesMeridiem()48 inline const Meridiem (&EnumValuesMeridiem())[3] {
49 static const Meridiem values[] = {
50 Meridiem_UNKNOWN,
51 Meridiem_AM,
52 Meridiem_PM
53 };
54 return values;
55 }
56
EnumNamesMeridiem()57 inline const char * const *EnumNamesMeridiem() {
58 static const char * const names[4] = {
59 "UNKNOWN",
60 "AM",
61 "PM",
62 nullptr
63 };
64 return names;
65 }
66
EnumNameMeridiem(Meridiem e)67 inline const char *EnumNameMeridiem(Meridiem e) {
68 if (flatbuffers::IsOutRange(e, Meridiem_UNKNOWN, Meridiem_PM)) return "";
69 const size_t index = static_cast<size_t>(e);
70 return EnumNamesMeridiem()[index];
71 }
72
73 enum ComponentType : int32_t {
74 ComponentType_UNSPECIFIED = 0,
75 ComponentType_YEAR = 1,
76 ComponentType_MONTH = 2,
77 ComponentType_WEEK = 3,
78 ComponentType_DAY_OF_WEEK = 4,
79 ComponentType_DAY_OF_MONTH = 5,
80 ComponentType_HOUR = 6,
81 ComponentType_MINUTE = 7,
82 ComponentType_SECOND = 8,
83 ComponentType_MERIDIEM = 9,
84 ComponentType_MIN = ComponentType_UNSPECIFIED,
85 ComponentType_MAX = ComponentType_MERIDIEM
86 };
87
EnumValuesComponentType()88 inline const ComponentType (&EnumValuesComponentType())[10] {
89 static const ComponentType values[] = {
90 ComponentType_UNSPECIFIED,
91 ComponentType_YEAR,
92 ComponentType_MONTH,
93 ComponentType_WEEK,
94 ComponentType_DAY_OF_WEEK,
95 ComponentType_DAY_OF_MONTH,
96 ComponentType_HOUR,
97 ComponentType_MINUTE,
98 ComponentType_SECOND,
99 ComponentType_MERIDIEM
100 };
101 return values;
102 }
103
EnumNamesComponentType()104 inline const char * const *EnumNamesComponentType() {
105 static const char * const names[11] = {
106 "UNSPECIFIED",
107 "YEAR",
108 "MONTH",
109 "WEEK",
110 "DAY_OF_WEEK",
111 "DAY_OF_MONTH",
112 "HOUR",
113 "MINUTE",
114 "SECOND",
115 "MERIDIEM",
116 nullptr
117 };
118 return names;
119 }
120
EnumNameComponentType(ComponentType e)121 inline const char *EnumNameComponentType(ComponentType e) {
122 if (flatbuffers::IsOutRange(e, ComponentType_UNSPECIFIED, ComponentType_MERIDIEM)) return "";
123 const size_t index = static_cast<size_t>(e);
124 return EnumNamesComponentType()[index];
125 }
126
127 namespace RelativeDatetimeComponent_ {
128
129 enum Modifier : int32_t {
130 Modifier_UNSPECIFIED = 0,
131 Modifier_NEXT = 1,
132 Modifier_THIS = 2,
133 Modifier_LAST = 3,
134 Modifier_NOW = 4,
135 Modifier_TOMORROW = 5,
136 Modifier_YESTERDAY = 6,
137 Modifier_PAST = 7,
138 Modifier_FUTURE = 8,
139 Modifier_MIN = Modifier_UNSPECIFIED,
140 Modifier_MAX = Modifier_FUTURE
141 };
142
EnumValuesModifier()143 inline const Modifier (&EnumValuesModifier())[9] {
144 static const Modifier values[] = {
145 Modifier_UNSPECIFIED,
146 Modifier_NEXT,
147 Modifier_THIS,
148 Modifier_LAST,
149 Modifier_NOW,
150 Modifier_TOMORROW,
151 Modifier_YESTERDAY,
152 Modifier_PAST,
153 Modifier_FUTURE
154 };
155 return values;
156 }
157
EnumNamesModifier()158 inline const char * const *EnumNamesModifier() {
159 static const char * const names[10] = {
160 "UNSPECIFIED",
161 "NEXT",
162 "THIS",
163 "LAST",
164 "NOW",
165 "TOMORROW",
166 "YESTERDAY",
167 "PAST",
168 "FUTURE",
169 nullptr
170 };
171 return names;
172 }
173
EnumNameModifier(Modifier e)174 inline const char *EnumNameModifier(Modifier e) {
175 if (flatbuffers::IsOutRange(e, Modifier_UNSPECIFIED, Modifier_FUTURE)) return "";
176 const size_t index = static_cast<size_t>(e);
177 return EnumNamesModifier()[index];
178 }
179
180 } // namespace RelativeDatetimeComponent_
181
182 struct TimeZoneT : public flatbuffers::NativeTable {
183 typedef TimeZone TableType;
184 int32_t utc_offset_mins = 0;
185 };
186
187 struct TimeZone FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
188 typedef TimeZoneT NativeTableType;
189 typedef TimeZoneBuilder Builder;
190 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
191 VT_UTC_OFFSET_MINS = 4
192 };
utc_offset_minsFLATBUFFERS_FINAL_CLASS193 int32_t utc_offset_mins() const {
194 return GetField<int32_t>(VT_UTC_OFFSET_MINS, 0);
195 }
VerifyFLATBUFFERS_FINAL_CLASS196 bool Verify(flatbuffers::Verifier &verifier) const {
197 return VerifyTableStart(verifier) &&
198 VerifyField<int32_t>(verifier, VT_UTC_OFFSET_MINS, 4) &&
199 verifier.EndTable();
200 }
201 TimeZoneT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
202 void UnPackTo(TimeZoneT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
203 static flatbuffers::Offset<TimeZone> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TimeZoneT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
204 };
205
206 struct TimeZoneBuilder {
207 typedef TimeZone Table;
208 flatbuffers::FlatBufferBuilder &fbb_;
209 flatbuffers::uoffset_t start_;
add_utc_offset_minsTimeZoneBuilder210 void add_utc_offset_mins(int32_t utc_offset_mins) {
211 fbb_.AddElement<int32_t>(TimeZone::VT_UTC_OFFSET_MINS, utc_offset_mins, 0);
212 }
TimeZoneBuilderTimeZoneBuilder213 explicit TimeZoneBuilder(flatbuffers::FlatBufferBuilder &_fbb)
214 : fbb_(_fbb) {
215 start_ = fbb_.StartTable();
216 }
FinishTimeZoneBuilder217 flatbuffers::Offset<TimeZone> Finish() {
218 const auto end = fbb_.EndTable(start_);
219 auto o = flatbuffers::Offset<TimeZone>(end);
220 return o;
221 }
222 };
223
224 inline flatbuffers::Offset<TimeZone> CreateTimeZone(
225 flatbuffers::FlatBufferBuilder &_fbb,
226 int32_t utc_offset_mins = 0) {
227 TimeZoneBuilder builder_(_fbb);
228 builder_.add_utc_offset_mins(utc_offset_mins);
229 return builder_.Finish();
230 }
231
232 flatbuffers::Offset<TimeZone> CreateTimeZone(flatbuffers::FlatBufferBuilder &_fbb, const TimeZoneT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
233
234 struct RelativeDatetimeComponentT : public flatbuffers::NativeTable {
235 typedef RelativeDatetimeComponent TableType;
236 libtextclassifier3::grammar::datetime::ComponentType component_type = libtextclassifier3::grammar::datetime::ComponentType_UNSPECIFIED;
237 libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier modifier = libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier_UNSPECIFIED;
238 int32_t value = 0;
239 };
240
241 struct RelativeDatetimeComponent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
242 typedef RelativeDatetimeComponentT NativeTableType;
243 typedef RelativeDatetimeComponentBuilder Builder;
244 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
245 VT_COMPONENT_TYPE = 4,
246 VT_MODIFIER = 6,
247 VT_VALUE = 8
248 };
component_typeFLATBUFFERS_FINAL_CLASS249 libtextclassifier3::grammar::datetime::ComponentType component_type() const {
250 return static_cast<libtextclassifier3::grammar::datetime::ComponentType>(GetField<int32_t>(VT_COMPONENT_TYPE, 0));
251 }
modifierFLATBUFFERS_FINAL_CLASS252 libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier modifier() const {
253 return static_cast<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier>(GetField<int32_t>(VT_MODIFIER, 0));
254 }
valueFLATBUFFERS_FINAL_CLASS255 int32_t value() const {
256 return GetField<int32_t>(VT_VALUE, 0);
257 }
VerifyFLATBUFFERS_FINAL_CLASS258 bool Verify(flatbuffers::Verifier &verifier) const {
259 return VerifyTableStart(verifier) &&
260 VerifyField<int32_t>(verifier, VT_COMPONENT_TYPE, 4) &&
261 VerifyField<int32_t>(verifier, VT_MODIFIER, 4) &&
262 VerifyField<int32_t>(verifier, VT_VALUE, 4) &&
263 verifier.EndTable();
264 }
265 RelativeDatetimeComponentT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
266 void UnPackTo(RelativeDatetimeComponentT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
267 static flatbuffers::Offset<RelativeDatetimeComponent> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDatetimeComponentT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
268 };
269
270 struct RelativeDatetimeComponentBuilder {
271 typedef RelativeDatetimeComponent Table;
272 flatbuffers::FlatBufferBuilder &fbb_;
273 flatbuffers::uoffset_t start_;
add_component_typeRelativeDatetimeComponentBuilder274 void add_component_type(libtextclassifier3::grammar::datetime::ComponentType component_type) {
275 fbb_.AddElement<int32_t>(RelativeDatetimeComponent::VT_COMPONENT_TYPE, static_cast<int32_t>(component_type), 0);
276 }
add_modifierRelativeDatetimeComponentBuilder277 void add_modifier(libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier modifier) {
278 fbb_.AddElement<int32_t>(RelativeDatetimeComponent::VT_MODIFIER, static_cast<int32_t>(modifier), 0);
279 }
add_valueRelativeDatetimeComponentBuilder280 void add_value(int32_t value) {
281 fbb_.AddElement<int32_t>(RelativeDatetimeComponent::VT_VALUE, value, 0);
282 }
RelativeDatetimeComponentBuilderRelativeDatetimeComponentBuilder283 explicit RelativeDatetimeComponentBuilder(flatbuffers::FlatBufferBuilder &_fbb)
284 : fbb_(_fbb) {
285 start_ = fbb_.StartTable();
286 }
FinishRelativeDatetimeComponentBuilder287 flatbuffers::Offset<RelativeDatetimeComponent> Finish() {
288 const auto end = fbb_.EndTable(start_);
289 auto o = flatbuffers::Offset<RelativeDatetimeComponent>(end);
290 return o;
291 }
292 };
293
294 inline flatbuffers::Offset<RelativeDatetimeComponent> CreateRelativeDatetimeComponent(
295 flatbuffers::FlatBufferBuilder &_fbb,
296 libtextclassifier3::grammar::datetime::ComponentType component_type = libtextclassifier3::grammar::datetime::ComponentType_UNSPECIFIED,
297 libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier modifier = libtextclassifier3::grammar::datetime::RelativeDatetimeComponent_::Modifier_UNSPECIFIED,
298 int32_t value = 0) {
299 RelativeDatetimeComponentBuilder builder_(_fbb);
300 builder_.add_value(value);
301 builder_.add_modifier(modifier);
302 builder_.add_component_type(component_type);
303 return builder_.Finish();
304 }
305
306 flatbuffers::Offset<RelativeDatetimeComponent> CreateRelativeDatetimeComponent(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDatetimeComponentT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
307
308 struct AbsoluteDateTimeT : public flatbuffers::NativeTable {
309 typedef AbsoluteDateTime TableType;
310 int32_t year = -1;
311 int32_t month = -1;
312 int32_t day = -1;
313 int32_t week_day = -1;
314 int32_t hour = -1;
315 int32_t minute = -1;
316 int32_t second = -1;
317 double partial_second = -1.0;
318 libtextclassifier3::grammar::datetime::Meridiem meridiem = libtextclassifier3::grammar::datetime::Meridiem_UNKNOWN;
319 std::unique_ptr<libtextclassifier3::grammar::datetime::TimeZoneT> time_zone{};
320 AbsoluteDateTimeT() = default;
321 AbsoluteDateTimeT(const AbsoluteDateTimeT &o);
322 AbsoluteDateTimeT(AbsoluteDateTimeT&&) FLATBUFFERS_NOEXCEPT = default;
323 AbsoluteDateTimeT &operator=(AbsoluteDateTimeT o) FLATBUFFERS_NOEXCEPT;
324 };
325
326 struct AbsoluteDateTime FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
327 typedef AbsoluteDateTimeT NativeTableType;
328 typedef AbsoluteDateTimeBuilder Builder;
329 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
330 VT_YEAR = 4,
331 VT_MONTH = 6,
332 VT_DAY = 8,
333 VT_WEEK_DAY = 10,
334 VT_HOUR = 12,
335 VT_MINUTE = 14,
336 VT_SECOND = 16,
337 VT_PARTIAL_SECOND = 18,
338 VT_MERIDIEM = 20,
339 VT_TIME_ZONE = 22
340 };
yearFLATBUFFERS_FINAL_CLASS341 int32_t year() const {
342 return GetField<int32_t>(VT_YEAR, -1);
343 }
monthFLATBUFFERS_FINAL_CLASS344 int32_t month() const {
345 return GetField<int32_t>(VT_MONTH, -1);
346 }
dayFLATBUFFERS_FINAL_CLASS347 int32_t day() const {
348 return GetField<int32_t>(VT_DAY, -1);
349 }
week_dayFLATBUFFERS_FINAL_CLASS350 int32_t week_day() const {
351 return GetField<int32_t>(VT_WEEK_DAY, -1);
352 }
hourFLATBUFFERS_FINAL_CLASS353 int32_t hour() const {
354 return GetField<int32_t>(VT_HOUR, -1);
355 }
minuteFLATBUFFERS_FINAL_CLASS356 int32_t minute() const {
357 return GetField<int32_t>(VT_MINUTE, -1);
358 }
secondFLATBUFFERS_FINAL_CLASS359 int32_t second() const {
360 return GetField<int32_t>(VT_SECOND, -1);
361 }
partial_secondFLATBUFFERS_FINAL_CLASS362 double partial_second() const {
363 return GetField<double>(VT_PARTIAL_SECOND, -1.0);
364 }
meridiemFLATBUFFERS_FINAL_CLASS365 libtextclassifier3::grammar::datetime::Meridiem meridiem() const {
366 return static_cast<libtextclassifier3::grammar::datetime::Meridiem>(GetField<int32_t>(VT_MERIDIEM, 0));
367 }
time_zoneFLATBUFFERS_FINAL_CLASS368 const libtextclassifier3::grammar::datetime::TimeZone *time_zone() const {
369 return GetPointer<const libtextclassifier3::grammar::datetime::TimeZone *>(VT_TIME_ZONE);
370 }
VerifyFLATBUFFERS_FINAL_CLASS371 bool Verify(flatbuffers::Verifier &verifier) const {
372 return VerifyTableStart(verifier) &&
373 VerifyField<int32_t>(verifier, VT_YEAR, 4) &&
374 VerifyField<int32_t>(verifier, VT_MONTH, 4) &&
375 VerifyField<int32_t>(verifier, VT_DAY, 4) &&
376 VerifyField<int32_t>(verifier, VT_WEEK_DAY, 4) &&
377 VerifyField<int32_t>(verifier, VT_HOUR, 4) &&
378 VerifyField<int32_t>(verifier, VT_MINUTE, 4) &&
379 VerifyField<int32_t>(verifier, VT_SECOND, 4) &&
380 VerifyField<double>(verifier, VT_PARTIAL_SECOND, 8) &&
381 VerifyField<int32_t>(verifier, VT_MERIDIEM, 4) &&
382 VerifyOffset(verifier, VT_TIME_ZONE) &&
383 verifier.VerifyTable(time_zone()) &&
384 verifier.EndTable();
385 }
386 AbsoluteDateTimeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
387 void UnPackTo(AbsoluteDateTimeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
388 static flatbuffers::Offset<AbsoluteDateTime> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AbsoluteDateTimeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
389 };
390
391 struct AbsoluteDateTimeBuilder {
392 typedef AbsoluteDateTime Table;
393 flatbuffers::FlatBufferBuilder &fbb_;
394 flatbuffers::uoffset_t start_;
add_yearAbsoluteDateTimeBuilder395 void add_year(int32_t year) {
396 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_YEAR, year, -1);
397 }
add_monthAbsoluteDateTimeBuilder398 void add_month(int32_t month) {
399 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_MONTH, month, -1);
400 }
add_dayAbsoluteDateTimeBuilder401 void add_day(int32_t day) {
402 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_DAY, day, -1);
403 }
add_week_dayAbsoluteDateTimeBuilder404 void add_week_day(int32_t week_day) {
405 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_WEEK_DAY, week_day, -1);
406 }
add_hourAbsoluteDateTimeBuilder407 void add_hour(int32_t hour) {
408 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_HOUR, hour, -1);
409 }
add_minuteAbsoluteDateTimeBuilder410 void add_minute(int32_t minute) {
411 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_MINUTE, minute, -1);
412 }
add_secondAbsoluteDateTimeBuilder413 void add_second(int32_t second) {
414 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_SECOND, second, -1);
415 }
add_partial_secondAbsoluteDateTimeBuilder416 void add_partial_second(double partial_second) {
417 fbb_.AddElement<double>(AbsoluteDateTime::VT_PARTIAL_SECOND, partial_second, -1.0);
418 }
add_meridiemAbsoluteDateTimeBuilder419 void add_meridiem(libtextclassifier3::grammar::datetime::Meridiem meridiem) {
420 fbb_.AddElement<int32_t>(AbsoluteDateTime::VT_MERIDIEM, static_cast<int32_t>(meridiem), 0);
421 }
add_time_zoneAbsoluteDateTimeBuilder422 void add_time_zone(flatbuffers::Offset<libtextclassifier3::grammar::datetime::TimeZone> time_zone) {
423 fbb_.AddOffset(AbsoluteDateTime::VT_TIME_ZONE, time_zone);
424 }
AbsoluteDateTimeBuilderAbsoluteDateTimeBuilder425 explicit AbsoluteDateTimeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
426 : fbb_(_fbb) {
427 start_ = fbb_.StartTable();
428 }
FinishAbsoluteDateTimeBuilder429 flatbuffers::Offset<AbsoluteDateTime> Finish() {
430 const auto end = fbb_.EndTable(start_);
431 auto o = flatbuffers::Offset<AbsoluteDateTime>(end);
432 return o;
433 }
434 };
435
436 inline flatbuffers::Offset<AbsoluteDateTime> CreateAbsoluteDateTime(
437 flatbuffers::FlatBufferBuilder &_fbb,
438 int32_t year = -1,
439 int32_t month = -1,
440 int32_t day = -1,
441 int32_t week_day = -1,
442 int32_t hour = -1,
443 int32_t minute = -1,
444 int32_t second = -1,
445 double partial_second = -1.0,
446 libtextclassifier3::grammar::datetime::Meridiem meridiem = libtextclassifier3::grammar::datetime::Meridiem_UNKNOWN,
447 flatbuffers::Offset<libtextclassifier3::grammar::datetime::TimeZone> time_zone = 0) {
448 AbsoluteDateTimeBuilder builder_(_fbb);
449 builder_.add_partial_second(partial_second);
450 builder_.add_time_zone(time_zone);
451 builder_.add_meridiem(meridiem);
452 builder_.add_second(second);
453 builder_.add_minute(minute);
454 builder_.add_hour(hour);
455 builder_.add_week_day(week_day);
456 builder_.add_day(day);
457 builder_.add_month(month);
458 builder_.add_year(year);
459 return builder_.Finish();
460 }
461
462 flatbuffers::Offset<AbsoluteDateTime> CreateAbsoluteDateTime(flatbuffers::FlatBufferBuilder &_fbb, const AbsoluteDateTimeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
463
464 struct RelativeDateTimeT : public flatbuffers::NativeTable {
465 typedef RelativeDateTime TableType;
466 std::vector<std::unique_ptr<libtextclassifier3::grammar::datetime::RelativeDatetimeComponentT>> relative_datetime_component{};
467 std::unique_ptr<libtextclassifier3::grammar::datetime::AbsoluteDateTimeT> base{};
468 RelativeDateTimeT() = default;
469 RelativeDateTimeT(const RelativeDateTimeT &o);
470 RelativeDateTimeT(RelativeDateTimeT&&) FLATBUFFERS_NOEXCEPT = default;
471 RelativeDateTimeT &operator=(RelativeDateTimeT o) FLATBUFFERS_NOEXCEPT;
472 };
473
474 struct RelativeDateTime FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
475 typedef RelativeDateTimeT NativeTableType;
476 typedef RelativeDateTimeBuilder Builder;
477 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
478 VT_RELATIVE_DATETIME_COMPONENT = 4,
479 VT_BASE = 6
480 };
relative_datetime_componentFLATBUFFERS_FINAL_CLASS481 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>> *relative_datetime_component() const {
482 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>> *>(VT_RELATIVE_DATETIME_COMPONENT);
483 }
baseFLATBUFFERS_FINAL_CLASS484 const libtextclassifier3::grammar::datetime::AbsoluteDateTime *base() const {
485 return GetPointer<const libtextclassifier3::grammar::datetime::AbsoluteDateTime *>(VT_BASE);
486 }
VerifyFLATBUFFERS_FINAL_CLASS487 bool Verify(flatbuffers::Verifier &verifier) const {
488 return VerifyTableStart(verifier) &&
489 VerifyOffset(verifier, VT_RELATIVE_DATETIME_COMPONENT) &&
490 verifier.VerifyVector(relative_datetime_component()) &&
491 verifier.VerifyVectorOfTables(relative_datetime_component()) &&
492 VerifyOffset(verifier, VT_BASE) &&
493 verifier.VerifyTable(base()) &&
494 verifier.EndTable();
495 }
496 RelativeDateTimeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
497 void UnPackTo(RelativeDateTimeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
498 static flatbuffers::Offset<RelativeDateTime> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDateTimeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
499 };
500
501 struct RelativeDateTimeBuilder {
502 typedef RelativeDateTime Table;
503 flatbuffers::FlatBufferBuilder &fbb_;
504 flatbuffers::uoffset_t start_;
add_relative_datetime_componentRelativeDateTimeBuilder505 void add_relative_datetime_component(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>>> relative_datetime_component) {
506 fbb_.AddOffset(RelativeDateTime::VT_RELATIVE_DATETIME_COMPONENT, relative_datetime_component);
507 }
add_baseRelativeDateTimeBuilder508 void add_base(flatbuffers::Offset<libtextclassifier3::grammar::datetime::AbsoluteDateTime> base) {
509 fbb_.AddOffset(RelativeDateTime::VT_BASE, base);
510 }
RelativeDateTimeBuilderRelativeDateTimeBuilder511 explicit RelativeDateTimeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
512 : fbb_(_fbb) {
513 start_ = fbb_.StartTable();
514 }
FinishRelativeDateTimeBuilder515 flatbuffers::Offset<RelativeDateTime> Finish() {
516 const auto end = fbb_.EndTable(start_);
517 auto o = flatbuffers::Offset<RelativeDateTime>(end);
518 return o;
519 }
520 };
521
522 inline flatbuffers::Offset<RelativeDateTime> CreateRelativeDateTime(
523 flatbuffers::FlatBufferBuilder &_fbb,
524 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>>> relative_datetime_component = 0,
525 flatbuffers::Offset<libtextclassifier3::grammar::datetime::AbsoluteDateTime> base = 0) {
526 RelativeDateTimeBuilder builder_(_fbb);
527 builder_.add_base(base);
528 builder_.add_relative_datetime_component(relative_datetime_component);
529 return builder_.Finish();
530 }
531
532 inline flatbuffers::Offset<RelativeDateTime> CreateRelativeDateTimeDirect(
533 flatbuffers::FlatBufferBuilder &_fbb,
534 const std::vector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>> *relative_datetime_component = nullptr,
535 flatbuffers::Offset<libtextclassifier3::grammar::datetime::AbsoluteDateTime> base = 0) {
536 auto relative_datetime_component__ = relative_datetime_component ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>>(*relative_datetime_component) : 0;
537 return libtextclassifier3::grammar::datetime::CreateRelativeDateTime(
538 _fbb,
539 relative_datetime_component__,
540 base);
541 }
542
543 flatbuffers::Offset<RelativeDateTime> CreateRelativeDateTime(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDateTimeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
544
545 struct UngroundedDatetimeT : public flatbuffers::NativeTable {
546 typedef UngroundedDatetime TableType;
547 std::unique_ptr<libtextclassifier3::grammar::datetime::AbsoluteDateTimeT> absolute_datetime{};
548 std::unique_ptr<libtextclassifier3::grammar::datetime::RelativeDateTimeT> relative_datetime{};
549 uint32_t annotation_usecases = 4294967295;
550 UngroundedDatetimeT() = default;
551 UngroundedDatetimeT(const UngroundedDatetimeT &o);
552 UngroundedDatetimeT(UngroundedDatetimeT&&) FLATBUFFERS_NOEXCEPT = default;
553 UngroundedDatetimeT &operator=(UngroundedDatetimeT o) FLATBUFFERS_NOEXCEPT;
554 };
555
556 struct UngroundedDatetime FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
557 typedef UngroundedDatetimeT NativeTableType;
558 typedef UngroundedDatetimeBuilder Builder;
559 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
560 VT_ABSOLUTE_DATETIME = 4,
561 VT_RELATIVE_DATETIME = 6,
562 VT_ANNOTATION_USECASES = 8
563 };
absolute_datetimeFLATBUFFERS_FINAL_CLASS564 const libtextclassifier3::grammar::datetime::AbsoluteDateTime *absolute_datetime() const {
565 return GetPointer<const libtextclassifier3::grammar::datetime::AbsoluteDateTime *>(VT_ABSOLUTE_DATETIME);
566 }
relative_datetimeFLATBUFFERS_FINAL_CLASS567 const libtextclassifier3::grammar::datetime::RelativeDateTime *relative_datetime() const {
568 return GetPointer<const libtextclassifier3::grammar::datetime::RelativeDateTime *>(VT_RELATIVE_DATETIME);
569 }
annotation_usecasesFLATBUFFERS_FINAL_CLASS570 uint32_t annotation_usecases() const {
571 return GetField<uint32_t>(VT_ANNOTATION_USECASES, 4294967295);
572 }
VerifyFLATBUFFERS_FINAL_CLASS573 bool Verify(flatbuffers::Verifier &verifier) const {
574 return VerifyTableStart(verifier) &&
575 VerifyOffset(verifier, VT_ABSOLUTE_DATETIME) &&
576 verifier.VerifyTable(absolute_datetime()) &&
577 VerifyOffset(verifier, VT_RELATIVE_DATETIME) &&
578 verifier.VerifyTable(relative_datetime()) &&
579 VerifyField<uint32_t>(verifier, VT_ANNOTATION_USECASES, 4) &&
580 verifier.EndTable();
581 }
582 UngroundedDatetimeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
583 void UnPackTo(UngroundedDatetimeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
584 static flatbuffers::Offset<UngroundedDatetime> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UngroundedDatetimeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
585 };
586
587 struct UngroundedDatetimeBuilder {
588 typedef UngroundedDatetime Table;
589 flatbuffers::FlatBufferBuilder &fbb_;
590 flatbuffers::uoffset_t start_;
add_absolute_datetimeUngroundedDatetimeBuilder591 void add_absolute_datetime(flatbuffers::Offset<libtextclassifier3::grammar::datetime::AbsoluteDateTime> absolute_datetime) {
592 fbb_.AddOffset(UngroundedDatetime::VT_ABSOLUTE_DATETIME, absolute_datetime);
593 }
add_relative_datetimeUngroundedDatetimeBuilder594 void add_relative_datetime(flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDateTime> relative_datetime) {
595 fbb_.AddOffset(UngroundedDatetime::VT_RELATIVE_DATETIME, relative_datetime);
596 }
add_annotation_usecasesUngroundedDatetimeBuilder597 void add_annotation_usecases(uint32_t annotation_usecases) {
598 fbb_.AddElement<uint32_t>(UngroundedDatetime::VT_ANNOTATION_USECASES, annotation_usecases, 4294967295);
599 }
UngroundedDatetimeBuilderUngroundedDatetimeBuilder600 explicit UngroundedDatetimeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
601 : fbb_(_fbb) {
602 start_ = fbb_.StartTable();
603 }
FinishUngroundedDatetimeBuilder604 flatbuffers::Offset<UngroundedDatetime> Finish() {
605 const auto end = fbb_.EndTable(start_);
606 auto o = flatbuffers::Offset<UngroundedDatetime>(end);
607 return o;
608 }
609 };
610
611 inline flatbuffers::Offset<UngroundedDatetime> CreateUngroundedDatetime(
612 flatbuffers::FlatBufferBuilder &_fbb,
613 flatbuffers::Offset<libtextclassifier3::grammar::datetime::AbsoluteDateTime> absolute_datetime = 0,
614 flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDateTime> relative_datetime = 0,
615 uint32_t annotation_usecases = 4294967295) {
616 UngroundedDatetimeBuilder builder_(_fbb);
617 builder_.add_annotation_usecases(annotation_usecases);
618 builder_.add_relative_datetime(relative_datetime);
619 builder_.add_absolute_datetime(absolute_datetime);
620 return builder_.Finish();
621 }
622
623 flatbuffers::Offset<UngroundedDatetime> CreateUngroundedDatetime(flatbuffers::FlatBufferBuilder &_fbb, const UngroundedDatetimeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
624
UnPack(const flatbuffers::resolver_function_t * _resolver)625 inline TimeZoneT *TimeZone::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
626 auto _o = std::unique_ptr<TimeZoneT>(new TimeZoneT());
627 UnPackTo(_o.get(), _resolver);
628 return _o.release();
629 }
630
UnPackTo(TimeZoneT * _o,const flatbuffers::resolver_function_t * _resolver)631 inline void TimeZone::UnPackTo(TimeZoneT *_o, const flatbuffers::resolver_function_t *_resolver) const {
632 (void)_o;
633 (void)_resolver;
634 { auto _e = utc_offset_mins(); _o->utc_offset_mins = _e; }
635 }
636
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TimeZoneT * _o,const flatbuffers::rehasher_function_t * _rehasher)637 inline flatbuffers::Offset<TimeZone> TimeZone::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TimeZoneT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
638 return CreateTimeZone(_fbb, _o, _rehasher);
639 }
640
CreateTimeZone(flatbuffers::FlatBufferBuilder & _fbb,const TimeZoneT * _o,const flatbuffers::rehasher_function_t * _rehasher)641 inline flatbuffers::Offset<TimeZone> CreateTimeZone(flatbuffers::FlatBufferBuilder &_fbb, const TimeZoneT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
642 (void)_rehasher;
643 (void)_o;
644 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TimeZoneT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
645 auto _utc_offset_mins = _o->utc_offset_mins;
646 return libtextclassifier3::grammar::datetime::CreateTimeZone(
647 _fbb,
648 _utc_offset_mins);
649 }
650
UnPack(const flatbuffers::resolver_function_t * _resolver)651 inline RelativeDatetimeComponentT *RelativeDatetimeComponent::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
652 auto _o = std::unique_ptr<RelativeDatetimeComponentT>(new RelativeDatetimeComponentT());
653 UnPackTo(_o.get(), _resolver);
654 return _o.release();
655 }
656
UnPackTo(RelativeDatetimeComponentT * _o,const flatbuffers::resolver_function_t * _resolver)657 inline void RelativeDatetimeComponent::UnPackTo(RelativeDatetimeComponentT *_o, const flatbuffers::resolver_function_t *_resolver) const {
658 (void)_o;
659 (void)_resolver;
660 { auto _e = component_type(); _o->component_type = _e; }
661 { auto _e = modifier(); _o->modifier = _e; }
662 { auto _e = value(); _o->value = _e; }
663 }
664
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RelativeDatetimeComponentT * _o,const flatbuffers::rehasher_function_t * _rehasher)665 inline flatbuffers::Offset<RelativeDatetimeComponent> RelativeDatetimeComponent::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDatetimeComponentT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
666 return CreateRelativeDatetimeComponent(_fbb, _o, _rehasher);
667 }
668
CreateRelativeDatetimeComponent(flatbuffers::FlatBufferBuilder & _fbb,const RelativeDatetimeComponentT * _o,const flatbuffers::rehasher_function_t * _rehasher)669 inline flatbuffers::Offset<RelativeDatetimeComponent> CreateRelativeDatetimeComponent(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDatetimeComponentT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
670 (void)_rehasher;
671 (void)_o;
672 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RelativeDatetimeComponentT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
673 auto _component_type = _o->component_type;
674 auto _modifier = _o->modifier;
675 auto _value = _o->value;
676 return libtextclassifier3::grammar::datetime::CreateRelativeDatetimeComponent(
677 _fbb,
678 _component_type,
679 _modifier,
680 _value);
681 }
682
AbsoluteDateTimeT(const AbsoluteDateTimeT & o)683 inline AbsoluteDateTimeT::AbsoluteDateTimeT(const AbsoluteDateTimeT &o)
684 : year(o.year),
685 month(o.month),
686 day(o.day),
687 week_day(o.week_day),
688 hour(o.hour),
689 minute(o.minute),
690 second(o.second),
691 partial_second(o.partial_second),
692 meridiem(o.meridiem),
693 time_zone((o.time_zone) ? new libtextclassifier3::grammar::datetime::TimeZoneT(*o.time_zone) : nullptr) {
694 }
695
696 inline AbsoluteDateTimeT &AbsoluteDateTimeT::operator=(AbsoluteDateTimeT o) FLATBUFFERS_NOEXCEPT {
697 std::swap(year, o.year);
698 std::swap(month, o.month);
699 std::swap(day, o.day);
700 std::swap(week_day, o.week_day);
701 std::swap(hour, o.hour);
702 std::swap(minute, o.minute);
703 std::swap(second, o.second);
704 std::swap(partial_second, o.partial_second);
705 std::swap(meridiem, o.meridiem);
706 std::swap(time_zone, o.time_zone);
707 return *this;
708 }
709
UnPack(const flatbuffers::resolver_function_t * _resolver)710 inline AbsoluteDateTimeT *AbsoluteDateTime::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
711 auto _o = std::unique_ptr<AbsoluteDateTimeT>(new AbsoluteDateTimeT());
712 UnPackTo(_o.get(), _resolver);
713 return _o.release();
714 }
715
UnPackTo(AbsoluteDateTimeT * _o,const flatbuffers::resolver_function_t * _resolver)716 inline void AbsoluteDateTime::UnPackTo(AbsoluteDateTimeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
717 (void)_o;
718 (void)_resolver;
719 { auto _e = year(); _o->year = _e; }
720 { auto _e = month(); _o->month = _e; }
721 { auto _e = day(); _o->day = _e; }
722 { auto _e = week_day(); _o->week_day = _e; }
723 { auto _e = hour(); _o->hour = _e; }
724 { auto _e = minute(); _o->minute = _e; }
725 { auto _e = second(); _o->second = _e; }
726 { auto _e = partial_second(); _o->partial_second = _e; }
727 { auto _e = meridiem(); _o->meridiem = _e; }
728 { auto _e = time_zone(); if (_e) _o->time_zone = std::unique_ptr<libtextclassifier3::grammar::datetime::TimeZoneT>(_e->UnPack(_resolver)); }
729 }
730
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AbsoluteDateTimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)731 inline flatbuffers::Offset<AbsoluteDateTime> AbsoluteDateTime::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AbsoluteDateTimeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
732 return CreateAbsoluteDateTime(_fbb, _o, _rehasher);
733 }
734
CreateAbsoluteDateTime(flatbuffers::FlatBufferBuilder & _fbb,const AbsoluteDateTimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)735 inline flatbuffers::Offset<AbsoluteDateTime> CreateAbsoluteDateTime(flatbuffers::FlatBufferBuilder &_fbb, const AbsoluteDateTimeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
736 (void)_rehasher;
737 (void)_o;
738 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AbsoluteDateTimeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
739 auto _year = _o->year;
740 auto _month = _o->month;
741 auto _day = _o->day;
742 auto _week_day = _o->week_day;
743 auto _hour = _o->hour;
744 auto _minute = _o->minute;
745 auto _second = _o->second;
746 auto _partial_second = _o->partial_second;
747 auto _meridiem = _o->meridiem;
748 auto _time_zone = _o->time_zone ? CreateTimeZone(_fbb, _o->time_zone.get(), _rehasher) : 0;
749 return libtextclassifier3::grammar::datetime::CreateAbsoluteDateTime(
750 _fbb,
751 _year,
752 _month,
753 _day,
754 _week_day,
755 _hour,
756 _minute,
757 _second,
758 _partial_second,
759 _meridiem,
760 _time_zone);
761 }
762
RelativeDateTimeT(const RelativeDateTimeT & o)763 inline RelativeDateTimeT::RelativeDateTimeT(const RelativeDateTimeT &o)
764 : base((o.base) ? new libtextclassifier3::grammar::datetime::AbsoluteDateTimeT(*o.base) : nullptr) {
765 relative_datetime_component.reserve(o.relative_datetime_component.size());
766 for (const auto &relative_datetime_component_ : o.relative_datetime_component) { relative_datetime_component.emplace_back((relative_datetime_component_) ? new libtextclassifier3::grammar::datetime::RelativeDatetimeComponentT(*relative_datetime_component_) : nullptr); }
767 }
768
769 inline RelativeDateTimeT &RelativeDateTimeT::operator=(RelativeDateTimeT o) FLATBUFFERS_NOEXCEPT {
770 std::swap(relative_datetime_component, o.relative_datetime_component);
771 std::swap(base, o.base);
772 return *this;
773 }
774
UnPack(const flatbuffers::resolver_function_t * _resolver)775 inline RelativeDateTimeT *RelativeDateTime::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
776 auto _o = std::unique_ptr<RelativeDateTimeT>(new RelativeDateTimeT());
777 UnPackTo(_o.get(), _resolver);
778 return _o.release();
779 }
780
UnPackTo(RelativeDateTimeT * _o,const flatbuffers::resolver_function_t * _resolver)781 inline void RelativeDateTime::UnPackTo(RelativeDateTimeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
782 (void)_o;
783 (void)_resolver;
784 { auto _e = relative_datetime_component(); if (_e) { _o->relative_datetime_component.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->relative_datetime_component[_i] = std::unique_ptr<libtextclassifier3::grammar::datetime::RelativeDatetimeComponentT>(_e->Get(_i)->UnPack(_resolver)); } } }
785 { auto _e = base(); if (_e) _o->base = std::unique_ptr<libtextclassifier3::grammar::datetime::AbsoluteDateTimeT>(_e->UnPack(_resolver)); }
786 }
787
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RelativeDateTimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)788 inline flatbuffers::Offset<RelativeDateTime> RelativeDateTime::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDateTimeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
789 return CreateRelativeDateTime(_fbb, _o, _rehasher);
790 }
791
CreateRelativeDateTime(flatbuffers::FlatBufferBuilder & _fbb,const RelativeDateTimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)792 inline flatbuffers::Offset<RelativeDateTime> CreateRelativeDateTime(flatbuffers::FlatBufferBuilder &_fbb, const RelativeDateTimeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
793 (void)_rehasher;
794 (void)_o;
795 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RelativeDateTimeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
796 auto _relative_datetime_component = _o->relative_datetime_component.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::datetime::RelativeDatetimeComponent>> (_o->relative_datetime_component.size(), [](size_t i, _VectorArgs *__va) { return CreateRelativeDatetimeComponent(*__va->__fbb, __va->__o->relative_datetime_component[i].get(), __va->__rehasher); }, &_va ) : 0;
797 auto _base = _o->base ? CreateAbsoluteDateTime(_fbb, _o->base.get(), _rehasher) : 0;
798 return libtextclassifier3::grammar::datetime::CreateRelativeDateTime(
799 _fbb,
800 _relative_datetime_component,
801 _base);
802 }
803
UngroundedDatetimeT(const UngroundedDatetimeT & o)804 inline UngroundedDatetimeT::UngroundedDatetimeT(const UngroundedDatetimeT &o)
805 : absolute_datetime((o.absolute_datetime) ? new libtextclassifier3::grammar::datetime::AbsoluteDateTimeT(*o.absolute_datetime) : nullptr),
806 relative_datetime((o.relative_datetime) ? new libtextclassifier3::grammar::datetime::RelativeDateTimeT(*o.relative_datetime) : nullptr),
807 annotation_usecases(o.annotation_usecases) {
808 }
809
810 inline UngroundedDatetimeT &UngroundedDatetimeT::operator=(UngroundedDatetimeT o) FLATBUFFERS_NOEXCEPT {
811 std::swap(absolute_datetime, o.absolute_datetime);
812 std::swap(relative_datetime, o.relative_datetime);
813 std::swap(annotation_usecases, o.annotation_usecases);
814 return *this;
815 }
816
UnPack(const flatbuffers::resolver_function_t * _resolver)817 inline UngroundedDatetimeT *UngroundedDatetime::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
818 auto _o = std::unique_ptr<UngroundedDatetimeT>(new UngroundedDatetimeT());
819 UnPackTo(_o.get(), _resolver);
820 return _o.release();
821 }
822
UnPackTo(UngroundedDatetimeT * _o,const flatbuffers::resolver_function_t * _resolver)823 inline void UngroundedDatetime::UnPackTo(UngroundedDatetimeT *_o, const flatbuffers::resolver_function_t *_resolver) const {
824 (void)_o;
825 (void)_resolver;
826 { auto _e = absolute_datetime(); if (_e) _o->absolute_datetime = std::unique_ptr<libtextclassifier3::grammar::datetime::AbsoluteDateTimeT>(_e->UnPack(_resolver)); }
827 { auto _e = relative_datetime(); if (_e) _o->relative_datetime = std::unique_ptr<libtextclassifier3::grammar::datetime::RelativeDateTimeT>(_e->UnPack(_resolver)); }
828 { auto _e = annotation_usecases(); _o->annotation_usecases = _e; }
829 }
830
Pack(flatbuffers::FlatBufferBuilder & _fbb,const UngroundedDatetimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)831 inline flatbuffers::Offset<UngroundedDatetime> UngroundedDatetime::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UngroundedDatetimeT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
832 return CreateUngroundedDatetime(_fbb, _o, _rehasher);
833 }
834
CreateUngroundedDatetime(flatbuffers::FlatBufferBuilder & _fbb,const UngroundedDatetimeT * _o,const flatbuffers::rehasher_function_t * _rehasher)835 inline flatbuffers::Offset<UngroundedDatetime> CreateUngroundedDatetime(flatbuffers::FlatBufferBuilder &_fbb, const UngroundedDatetimeT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
836 (void)_rehasher;
837 (void)_o;
838 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const UngroundedDatetimeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
839 auto _absolute_datetime = _o->absolute_datetime ? CreateAbsoluteDateTime(_fbb, _o->absolute_datetime.get(), _rehasher) : 0;
840 auto _relative_datetime = _o->relative_datetime ? CreateRelativeDateTime(_fbb, _o->relative_datetime.get(), _rehasher) : 0;
841 auto _annotation_usecases = _o->annotation_usecases;
842 return libtextclassifier3::grammar::datetime::CreateUngroundedDatetime(
843 _fbb,
844 _absolute_datetime,
845 _relative_datetime,
846 _annotation_usecases);
847 }
848
849 } // namespace datetime
850 } // namespace grammar
851 } // namespace libtextclassifier3
852
853 #endif // FLATBUFFERS_GENERATED_DATETIME_LIBTEXTCLASSIFIER3_GRAMMAR_DATETIME_H_
854