1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_ACTIONSMODEL_LIBTEXTCLASSIFIER3_H_
5 #define FLATBUFFERS_GENERATED_ACTIONSMODEL_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 #include "actions/actions-entity-data_generated.h"
17 #include "annotator/model_generated.h"
18 #include "utils/codepoint-range_generated.h"
19 #include "utils/flatbuffers/flatbuffers_generated.h"
20 #include "utils/grammar/rules_generated.h"
21 #include "utils/intents/intent-config_generated.h"
22 #include "utils/normalization_generated.h"
23 #include "utils/resources_generated.h"
24 #include "utils/tokenizer_generated.h"
25 #include "utils/zlib/buffer_generated.h"
26 
27 namespace libtextclassifier3 {
28 
29 struct PredictionMetadata;
30 struct PredictionMetadataBuilder;
31 struct PredictionMetadataT;
32 
33 namespace TensorflowLiteModelSpec_ {
34 
35 struct InputNameIndexEntry;
36 struct InputNameIndexEntryBuilder;
37 struct InputNameIndexEntryT;
38 
39 }  // namespace TensorflowLiteModelSpec_
40 
41 struct TensorflowLiteModelSpec;
42 struct TensorflowLiteModelSpecBuilder;
43 struct TensorflowLiteModelSpecT;
44 
45 struct ActionsTokenizerOptions;
46 struct ActionsTokenizerOptionsBuilder;
47 struct ActionsTokenizerOptionsT;
48 
49 struct ActionsTokenFeatureProcessorOptions;
50 struct ActionsTokenFeatureProcessorOptionsBuilder;
51 struct ActionsTokenFeatureProcessorOptionsT;
52 
53 struct NGramLinearRegressionModel;
54 struct NGramLinearRegressionModelBuilder;
55 struct NGramLinearRegressionModelT;
56 
57 struct TFLiteSensitiveClassifierConfig;
58 struct TFLiteSensitiveClassifierConfigBuilder;
59 struct TFLiteSensitiveClassifierConfigT;
60 
61 struct TriggeringPreconditions;
62 struct TriggeringPreconditionsBuilder;
63 struct TriggeringPreconditionsT;
64 
65 struct ActionConceptToSuggestion;
66 struct ActionConceptToSuggestionBuilder;
67 struct ActionConceptToSuggestionT;
68 
69 struct ActionSuggestionSpec;
70 struct ActionSuggestionSpecBuilder;
71 struct ActionSuggestionSpecT;
72 
73 struct ActionTypeOptions;
74 struct ActionTypeOptionsBuilder;
75 struct ActionTypeOptionsT;
76 
77 namespace AnnotationActionsSpec_ {
78 
79 struct AnnotationMapping;
80 struct AnnotationMappingBuilder;
81 struct AnnotationMappingT;
82 
83 }  // namespace AnnotationActionsSpec_
84 
85 struct AnnotationActionsSpec;
86 struct AnnotationActionsSpecBuilder;
87 struct AnnotationActionsSpecT;
88 
89 struct RankingOptions;
90 struct RankingOptionsBuilder;
91 struct RankingOptionsT;
92 
93 namespace RulesModel_ {
94 namespace RuleActionSpec_ {
95 
96 struct RuleCapturingGroup;
97 struct RuleCapturingGroupBuilder;
98 struct RuleCapturingGroupT;
99 
100 }  // namespace RuleActionSpec_
101 
102 struct RuleActionSpec;
103 struct RuleActionSpecBuilder;
104 struct RuleActionSpecT;
105 
106 struct RegexRule;
107 struct RegexRuleBuilder;
108 struct RegexRuleT;
109 
110 namespace GrammarRules_ {
111 
112 struct RuleMatch;
113 struct RuleMatchBuilder;
114 struct RuleMatchT;
115 
116 }  // namespace GrammarRules_
117 
118 struct GrammarRules;
119 struct GrammarRulesBuilder;
120 struct GrammarRulesT;
121 
122 }  // namespace RulesModel_
123 
124 struct RulesModel;
125 struct RulesModelBuilder;
126 struct RulesModelT;
127 
128 struct ActionsModel;
129 struct ActionsModelBuilder;
130 struct ActionsModelT;
131 
132 enum PredictionType : int32_t {
133   PredictionType_UNSUPPORTED = 0,
134   PredictionType_NEXT_MESSAGE_PREDICTION = 1,
135   PredictionType_INTENT_TRIGGERING = 2,
136   PredictionType_ENTITY_ANNOTATION = 3,
137   PredictionType_MIN = PredictionType_UNSUPPORTED,
138   PredictionType_MAX = PredictionType_ENTITY_ANNOTATION
139 };
140 
EnumValuesPredictionType()141 inline const PredictionType (&EnumValuesPredictionType())[4] {
142   static const PredictionType values[] = {
143     PredictionType_UNSUPPORTED,
144     PredictionType_NEXT_MESSAGE_PREDICTION,
145     PredictionType_INTENT_TRIGGERING,
146     PredictionType_ENTITY_ANNOTATION
147   };
148   return values;
149 }
150 
EnumNamesPredictionType()151 inline const char * const *EnumNamesPredictionType() {
152   static const char * const names[5] = {
153     "UNSUPPORTED",
154     "NEXT_MESSAGE_PREDICTION",
155     "INTENT_TRIGGERING",
156     "ENTITY_ANNOTATION",
157     nullptr
158   };
159   return names;
160 }
161 
EnumNamePredictionType(PredictionType e)162 inline const char *EnumNamePredictionType(PredictionType e) {
163   if (flatbuffers::IsOutRange(e, PredictionType_UNSUPPORTED, PredictionType_ENTITY_ANNOTATION)) return "";
164   const size_t index = static_cast<size_t>(e);
165   return EnumNamesPredictionType()[index];
166 }
167 
168 enum RankingOptionsSortType : int32_t {
169   RankingOptionsSortType_SORT_TYPE_UNSPECIFIED = 0,
170   RankingOptionsSortType_SORT_TYPE_SCORE = 1,
171   RankingOptionsSortType_SORT_TYPE_PRIORITY_SCORE = 2,
172   RankingOptionsSortType_MIN = RankingOptionsSortType_SORT_TYPE_UNSPECIFIED,
173   RankingOptionsSortType_MAX = RankingOptionsSortType_SORT_TYPE_PRIORITY_SCORE
174 };
175 
EnumValuesRankingOptionsSortType()176 inline const RankingOptionsSortType (&EnumValuesRankingOptionsSortType())[3] {
177   static const RankingOptionsSortType values[] = {
178     RankingOptionsSortType_SORT_TYPE_UNSPECIFIED,
179     RankingOptionsSortType_SORT_TYPE_SCORE,
180     RankingOptionsSortType_SORT_TYPE_PRIORITY_SCORE
181   };
182   return values;
183 }
184 
EnumNamesRankingOptionsSortType()185 inline const char * const *EnumNamesRankingOptionsSortType() {
186   static const char * const names[4] = {
187     "SORT_TYPE_UNSPECIFIED",
188     "SORT_TYPE_SCORE",
189     "SORT_TYPE_PRIORITY_SCORE",
190     nullptr
191   };
192   return names;
193 }
194 
EnumNameRankingOptionsSortType(RankingOptionsSortType e)195 inline const char *EnumNameRankingOptionsSortType(RankingOptionsSortType e) {
196   if (flatbuffers::IsOutRange(e, RankingOptionsSortType_SORT_TYPE_UNSPECIFIED, RankingOptionsSortType_SORT_TYPE_PRIORITY_SCORE)) return "";
197   const size_t index = static_cast<size_t>(e);
198   return EnumNamesRankingOptionsSortType()[index];
199 }
200 
201 struct PredictionMetadataT : public flatbuffers::NativeTable {
202   typedef PredictionMetadata TableType;
203   libtextclassifier3::PredictionType prediction_type = libtextclassifier3::PredictionType_UNSUPPORTED;
204   std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT> task_spec{};
205   int32_t output_suggestions = 0;
206   int32_t output_suggestions_scores = 0;
207   int32_t output_suggestions_spans = 0;
208   PredictionMetadataT() = default;
209   PredictionMetadataT(const PredictionMetadataT &o);
210   PredictionMetadataT(PredictionMetadataT&&) FLATBUFFERS_NOEXCEPT = default;
211   PredictionMetadataT &operator=(PredictionMetadataT o) FLATBUFFERS_NOEXCEPT;
212 };
213 
214 struct PredictionMetadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
215   typedef PredictionMetadataT NativeTableType;
216   typedef PredictionMetadataBuilder Builder;
217   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
218     VT_PREDICTION_TYPE = 4,
219     VT_TASK_SPEC = 6,
220     VT_OUTPUT_SUGGESTIONS = 8,
221     VT_OUTPUT_SUGGESTIONS_SCORES = 10,
222     VT_OUTPUT_SUGGESTIONS_SPANS = 12
223   };
prediction_typeFLATBUFFERS_FINAL_CLASS224   libtextclassifier3::PredictionType prediction_type() const {
225     return static_cast<libtextclassifier3::PredictionType>(GetField<int32_t>(VT_PREDICTION_TYPE, 0));
226   }
task_specFLATBUFFERS_FINAL_CLASS227   const libtextclassifier3::ActionSuggestionSpec *task_spec() const {
228     return GetPointer<const libtextclassifier3::ActionSuggestionSpec *>(VT_TASK_SPEC);
229   }
output_suggestionsFLATBUFFERS_FINAL_CLASS230   int32_t output_suggestions() const {
231     return GetField<int32_t>(VT_OUTPUT_SUGGESTIONS, 0);
232   }
output_suggestions_scoresFLATBUFFERS_FINAL_CLASS233   int32_t output_suggestions_scores() const {
234     return GetField<int32_t>(VT_OUTPUT_SUGGESTIONS_SCORES, 0);
235   }
output_suggestions_spansFLATBUFFERS_FINAL_CLASS236   int32_t output_suggestions_spans() const {
237     return GetField<int32_t>(VT_OUTPUT_SUGGESTIONS_SPANS, 0);
238   }
VerifyFLATBUFFERS_FINAL_CLASS239   bool Verify(flatbuffers::Verifier &verifier) const {
240     return VerifyTableStart(verifier) &&
241            VerifyField<int32_t>(verifier, VT_PREDICTION_TYPE, 4) &&
242            VerifyOffset(verifier, VT_TASK_SPEC) &&
243            verifier.VerifyTable(task_spec()) &&
244            VerifyField<int32_t>(verifier, VT_OUTPUT_SUGGESTIONS, 4) &&
245            VerifyField<int32_t>(verifier, VT_OUTPUT_SUGGESTIONS_SCORES, 4) &&
246            VerifyField<int32_t>(verifier, VT_OUTPUT_SUGGESTIONS_SPANS, 4) &&
247            verifier.EndTable();
248   }
249   PredictionMetadataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
250   void UnPackTo(PredictionMetadataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
251   static flatbuffers::Offset<PredictionMetadata> Pack(flatbuffers::FlatBufferBuilder &_fbb, const PredictionMetadataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
252 };
253 
254 struct PredictionMetadataBuilder {
255   typedef PredictionMetadata Table;
256   flatbuffers::FlatBufferBuilder &fbb_;
257   flatbuffers::uoffset_t start_;
add_prediction_typePredictionMetadataBuilder258   void add_prediction_type(libtextclassifier3::PredictionType prediction_type) {
259     fbb_.AddElement<int32_t>(PredictionMetadata::VT_PREDICTION_TYPE, static_cast<int32_t>(prediction_type), 0);
260   }
add_task_specPredictionMetadataBuilder261   void add_task_spec(flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> task_spec) {
262     fbb_.AddOffset(PredictionMetadata::VT_TASK_SPEC, task_spec);
263   }
add_output_suggestionsPredictionMetadataBuilder264   void add_output_suggestions(int32_t output_suggestions) {
265     fbb_.AddElement<int32_t>(PredictionMetadata::VT_OUTPUT_SUGGESTIONS, output_suggestions, 0);
266   }
add_output_suggestions_scoresPredictionMetadataBuilder267   void add_output_suggestions_scores(int32_t output_suggestions_scores) {
268     fbb_.AddElement<int32_t>(PredictionMetadata::VT_OUTPUT_SUGGESTIONS_SCORES, output_suggestions_scores, 0);
269   }
add_output_suggestions_spansPredictionMetadataBuilder270   void add_output_suggestions_spans(int32_t output_suggestions_spans) {
271     fbb_.AddElement<int32_t>(PredictionMetadata::VT_OUTPUT_SUGGESTIONS_SPANS, output_suggestions_spans, 0);
272   }
PredictionMetadataBuilderPredictionMetadataBuilder273   explicit PredictionMetadataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
274         : fbb_(_fbb) {
275     start_ = fbb_.StartTable();
276   }
FinishPredictionMetadataBuilder277   flatbuffers::Offset<PredictionMetadata> Finish() {
278     const auto end = fbb_.EndTable(start_);
279     auto o = flatbuffers::Offset<PredictionMetadata>(end);
280     return o;
281   }
282 };
283 
284 inline flatbuffers::Offset<PredictionMetadata> CreatePredictionMetadata(
285     flatbuffers::FlatBufferBuilder &_fbb,
286     libtextclassifier3::PredictionType prediction_type = libtextclassifier3::PredictionType_UNSUPPORTED,
287     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> task_spec = 0,
288     int32_t output_suggestions = 0,
289     int32_t output_suggestions_scores = 0,
290     int32_t output_suggestions_spans = 0) {
291   PredictionMetadataBuilder builder_(_fbb);
292   builder_.add_output_suggestions_spans(output_suggestions_spans);
293   builder_.add_output_suggestions_scores(output_suggestions_scores);
294   builder_.add_output_suggestions(output_suggestions);
295   builder_.add_task_spec(task_spec);
296   builder_.add_prediction_type(prediction_type);
297   return builder_.Finish();
298 }
299 
300 flatbuffers::Offset<PredictionMetadata> CreatePredictionMetadata(flatbuffers::FlatBufferBuilder &_fbb, const PredictionMetadataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
301 
302 namespace TensorflowLiteModelSpec_ {
303 
304 struct InputNameIndexEntryT : public flatbuffers::NativeTable {
305   typedef InputNameIndexEntry TableType;
306   std::string key{};
307   int32_t value = 0;
308 };
309 
310 struct InputNameIndexEntry FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
311   typedef InputNameIndexEntryT NativeTableType;
312   typedef InputNameIndexEntryBuilder Builder;
313   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
314     VT_KEY = 4,
315     VT_VALUE = 6
316   };
keyFLATBUFFERS_FINAL_CLASS317   const flatbuffers::String *key() const {
318     return GetPointer<const flatbuffers::String *>(VT_KEY);
319   }
KeyCompareLessThanFLATBUFFERS_FINAL_CLASS320   bool KeyCompareLessThan(const InputNameIndexEntry *o) const {
321     return *key() < *o->key();
322   }
KeyCompareWithValueFLATBUFFERS_FINAL_CLASS323   int KeyCompareWithValue(const char *_key) const {
324     return strcmp(key()->c_str(), _key);
325   }
valueFLATBUFFERS_FINAL_CLASS326   int32_t value() const {
327     return GetField<int32_t>(VT_VALUE, 0);
328   }
VerifyFLATBUFFERS_FINAL_CLASS329   bool Verify(flatbuffers::Verifier &verifier) const {
330     return VerifyTableStart(verifier) &&
331            VerifyOffsetRequired(verifier, VT_KEY) &&
332            verifier.VerifyString(key()) &&
333            VerifyField<int32_t>(verifier, VT_VALUE, 4) &&
334            verifier.EndTable();
335   }
336   InputNameIndexEntryT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
337   void UnPackTo(InputNameIndexEntryT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
338   static flatbuffers::Offset<InputNameIndexEntry> Pack(flatbuffers::FlatBufferBuilder &_fbb, const InputNameIndexEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
339 };
340 
341 struct InputNameIndexEntryBuilder {
342   typedef InputNameIndexEntry Table;
343   flatbuffers::FlatBufferBuilder &fbb_;
344   flatbuffers::uoffset_t start_;
add_keyInputNameIndexEntryBuilder345   void add_key(flatbuffers::Offset<flatbuffers::String> key) {
346     fbb_.AddOffset(InputNameIndexEntry::VT_KEY, key);
347   }
add_valueInputNameIndexEntryBuilder348   void add_value(int32_t value) {
349     fbb_.AddElement<int32_t>(InputNameIndexEntry::VT_VALUE, value, 0);
350   }
InputNameIndexEntryBuilderInputNameIndexEntryBuilder351   explicit InputNameIndexEntryBuilder(flatbuffers::FlatBufferBuilder &_fbb)
352         : fbb_(_fbb) {
353     start_ = fbb_.StartTable();
354   }
FinishInputNameIndexEntryBuilder355   flatbuffers::Offset<InputNameIndexEntry> Finish() {
356     const auto end = fbb_.EndTable(start_);
357     auto o = flatbuffers::Offset<InputNameIndexEntry>(end);
358     fbb_.Required(o, InputNameIndexEntry::VT_KEY);
359     return o;
360   }
361 };
362 
363 inline flatbuffers::Offset<InputNameIndexEntry> CreateInputNameIndexEntry(
364     flatbuffers::FlatBufferBuilder &_fbb,
365     flatbuffers::Offset<flatbuffers::String> key = 0,
366     int32_t value = 0) {
367   InputNameIndexEntryBuilder builder_(_fbb);
368   builder_.add_value(value);
369   builder_.add_key(key);
370   return builder_.Finish();
371 }
372 
373 inline flatbuffers::Offset<InputNameIndexEntry> CreateInputNameIndexEntryDirect(
374     flatbuffers::FlatBufferBuilder &_fbb,
375     const char *key = nullptr,
376     int32_t value = 0) {
377   auto key__ = key ? _fbb.CreateSharedString(key) : 0;
378   return libtextclassifier3::TensorflowLiteModelSpec_::CreateInputNameIndexEntry(
379       _fbb,
380       key__,
381       value);
382 }
383 
384 flatbuffers::Offset<InputNameIndexEntry> CreateInputNameIndexEntry(flatbuffers::FlatBufferBuilder &_fbb, const InputNameIndexEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
385 
386 }  // namespace TensorflowLiteModelSpec_
387 
388 struct TensorflowLiteModelSpecT : public flatbuffers::NativeTable {
389   typedef TensorflowLiteModelSpec TableType;
390   std::vector<uint8_t> tflite_model{};
391   int32_t input_user_id = 0;
392   int32_t input_context = 1;
393   int32_t input_context_length = 2;
394   int32_t input_time_diffs = 3;
395   int32_t input_num_suggestions = 4;
396   int32_t input_token_embeddings = -1;
397   int32_t input_num_tokens = -1;
398   int32_t output_replies = 0;
399   int32_t output_replies_scores = 1;
400   int32_t output_sensitive_topic_score = 3;
401   int32_t output_triggering_score = 4;
402   int32_t output_actions_scores = 5;
403   bool resize_inputs = false;
404   int32_t input_flattened_token_embeddings = -1;
405   std::vector<std::unique_ptr<libtextclassifier3::PredictionMetadataT>> prediction_metadata{};
406   std::vector<std::unique_ptr<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntryT>> input_name_index{};
407   int32_t input_length_to_pad = 0;
408   TensorflowLiteModelSpecT() = default;
409   TensorflowLiteModelSpecT(const TensorflowLiteModelSpecT &o);
410   TensorflowLiteModelSpecT(TensorflowLiteModelSpecT&&) FLATBUFFERS_NOEXCEPT = default;
411   TensorflowLiteModelSpecT &operator=(TensorflowLiteModelSpecT o) FLATBUFFERS_NOEXCEPT;
412 };
413 
414 struct TensorflowLiteModelSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
415   typedef TensorflowLiteModelSpecT NativeTableType;
416   typedef TensorflowLiteModelSpecBuilder Builder;
417   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
418     VT_TFLITE_MODEL = 4,
419     VT_INPUT_USER_ID = 6,
420     VT_INPUT_CONTEXT = 8,
421     VT_INPUT_CONTEXT_LENGTH = 10,
422     VT_INPUT_TIME_DIFFS = 12,
423     VT_INPUT_NUM_SUGGESTIONS = 14,
424     VT_INPUT_TOKEN_EMBEDDINGS = 22,
425     VT_INPUT_NUM_TOKENS = 24,
426     VT_OUTPUT_REPLIES = 26,
427     VT_OUTPUT_REPLIES_SCORES = 28,
428     VT_OUTPUT_SENSITIVE_TOPIC_SCORE = 30,
429     VT_OUTPUT_TRIGGERING_SCORE = 32,
430     VT_OUTPUT_ACTIONS_SCORES = 34,
431     VT_RESIZE_INPUTS = 36,
432     VT_INPUT_FLATTENED_TOKEN_EMBEDDINGS = 38,
433     VT_PREDICTION_METADATA = 40,
434     VT_INPUT_NAME_INDEX = 42,
435     VT_INPUT_LENGTH_TO_PAD = 44
436   };
tflite_modelFLATBUFFERS_FINAL_CLASS437   const flatbuffers::Vector<uint8_t> *tflite_model() const {
438     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_TFLITE_MODEL);
439   }
input_user_idFLATBUFFERS_FINAL_CLASS440   int32_t input_user_id() const {
441     return GetField<int32_t>(VT_INPUT_USER_ID, 0);
442   }
input_contextFLATBUFFERS_FINAL_CLASS443   int32_t input_context() const {
444     return GetField<int32_t>(VT_INPUT_CONTEXT, 1);
445   }
input_context_lengthFLATBUFFERS_FINAL_CLASS446   int32_t input_context_length() const {
447     return GetField<int32_t>(VT_INPUT_CONTEXT_LENGTH, 2);
448   }
input_time_diffsFLATBUFFERS_FINAL_CLASS449   int32_t input_time_diffs() const {
450     return GetField<int32_t>(VT_INPUT_TIME_DIFFS, 3);
451   }
input_num_suggestionsFLATBUFFERS_FINAL_CLASS452   int32_t input_num_suggestions() const {
453     return GetField<int32_t>(VT_INPUT_NUM_SUGGESTIONS, 4);
454   }
input_token_embeddingsFLATBUFFERS_FINAL_CLASS455   int32_t input_token_embeddings() const {
456     return GetField<int32_t>(VT_INPUT_TOKEN_EMBEDDINGS, -1);
457   }
input_num_tokensFLATBUFFERS_FINAL_CLASS458   int32_t input_num_tokens() const {
459     return GetField<int32_t>(VT_INPUT_NUM_TOKENS, -1);
460   }
output_repliesFLATBUFFERS_FINAL_CLASS461   int32_t output_replies() const {
462     return GetField<int32_t>(VT_OUTPUT_REPLIES, 0);
463   }
output_replies_scoresFLATBUFFERS_FINAL_CLASS464   int32_t output_replies_scores() const {
465     return GetField<int32_t>(VT_OUTPUT_REPLIES_SCORES, 1);
466   }
output_sensitive_topic_scoreFLATBUFFERS_FINAL_CLASS467   int32_t output_sensitive_topic_score() const {
468     return GetField<int32_t>(VT_OUTPUT_SENSITIVE_TOPIC_SCORE, 3);
469   }
output_triggering_scoreFLATBUFFERS_FINAL_CLASS470   int32_t output_triggering_score() const {
471     return GetField<int32_t>(VT_OUTPUT_TRIGGERING_SCORE, 4);
472   }
output_actions_scoresFLATBUFFERS_FINAL_CLASS473   int32_t output_actions_scores() const {
474     return GetField<int32_t>(VT_OUTPUT_ACTIONS_SCORES, 5);
475   }
resize_inputsFLATBUFFERS_FINAL_CLASS476   bool resize_inputs() const {
477     return GetField<uint8_t>(VT_RESIZE_INPUTS, 0) != 0;
478   }
input_flattened_token_embeddingsFLATBUFFERS_FINAL_CLASS479   int32_t input_flattened_token_embeddings() const {
480     return GetField<int32_t>(VT_INPUT_FLATTENED_TOKEN_EMBEDDINGS, -1);
481   }
prediction_metadataFLATBUFFERS_FINAL_CLASS482   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>> *prediction_metadata() const {
483     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>> *>(VT_PREDICTION_METADATA);
484   }
input_name_indexFLATBUFFERS_FINAL_CLASS485   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>> *input_name_index() const {
486     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>> *>(VT_INPUT_NAME_INDEX);
487   }
input_length_to_padFLATBUFFERS_FINAL_CLASS488   int32_t input_length_to_pad() const {
489     return GetField<int32_t>(VT_INPUT_LENGTH_TO_PAD, 0);
490   }
VerifyFLATBUFFERS_FINAL_CLASS491   bool Verify(flatbuffers::Verifier &verifier) const {
492     return VerifyTableStart(verifier) &&
493            VerifyOffset(verifier, VT_TFLITE_MODEL) &&
494            verifier.VerifyVector(tflite_model()) &&
495            VerifyField<int32_t>(verifier, VT_INPUT_USER_ID, 4) &&
496            VerifyField<int32_t>(verifier, VT_INPUT_CONTEXT, 4) &&
497            VerifyField<int32_t>(verifier, VT_INPUT_CONTEXT_LENGTH, 4) &&
498            VerifyField<int32_t>(verifier, VT_INPUT_TIME_DIFFS, 4) &&
499            VerifyField<int32_t>(verifier, VT_INPUT_NUM_SUGGESTIONS, 4) &&
500            VerifyField<int32_t>(verifier, VT_INPUT_TOKEN_EMBEDDINGS, 4) &&
501            VerifyField<int32_t>(verifier, VT_INPUT_NUM_TOKENS, 4) &&
502            VerifyField<int32_t>(verifier, VT_OUTPUT_REPLIES, 4) &&
503            VerifyField<int32_t>(verifier, VT_OUTPUT_REPLIES_SCORES, 4) &&
504            VerifyField<int32_t>(verifier, VT_OUTPUT_SENSITIVE_TOPIC_SCORE, 4) &&
505            VerifyField<int32_t>(verifier, VT_OUTPUT_TRIGGERING_SCORE, 4) &&
506            VerifyField<int32_t>(verifier, VT_OUTPUT_ACTIONS_SCORES, 4) &&
507            VerifyField<uint8_t>(verifier, VT_RESIZE_INPUTS, 1) &&
508            VerifyField<int32_t>(verifier, VT_INPUT_FLATTENED_TOKEN_EMBEDDINGS, 4) &&
509            VerifyOffset(verifier, VT_PREDICTION_METADATA) &&
510            verifier.VerifyVector(prediction_metadata()) &&
511            verifier.VerifyVectorOfTables(prediction_metadata()) &&
512            VerifyOffset(verifier, VT_INPUT_NAME_INDEX) &&
513            verifier.VerifyVector(input_name_index()) &&
514            verifier.VerifyVectorOfTables(input_name_index()) &&
515            VerifyField<int32_t>(verifier, VT_INPUT_LENGTH_TO_PAD, 4) &&
516            verifier.EndTable();
517   }
518   TensorflowLiteModelSpecT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
519   void UnPackTo(TensorflowLiteModelSpecT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
520   static flatbuffers::Offset<TensorflowLiteModelSpec> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorflowLiteModelSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
521 };
522 
523 struct TensorflowLiteModelSpecBuilder {
524   typedef TensorflowLiteModelSpec Table;
525   flatbuffers::FlatBufferBuilder &fbb_;
526   flatbuffers::uoffset_t start_;
add_tflite_modelTensorflowLiteModelSpecBuilder527   void add_tflite_model(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> tflite_model) {
528     fbb_.AddOffset(TensorflowLiteModelSpec::VT_TFLITE_MODEL, tflite_model);
529   }
add_input_user_idTensorflowLiteModelSpecBuilder530   void add_input_user_id(int32_t input_user_id) {
531     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_USER_ID, input_user_id, 0);
532   }
add_input_contextTensorflowLiteModelSpecBuilder533   void add_input_context(int32_t input_context) {
534     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_CONTEXT, input_context, 1);
535   }
add_input_context_lengthTensorflowLiteModelSpecBuilder536   void add_input_context_length(int32_t input_context_length) {
537     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_CONTEXT_LENGTH, input_context_length, 2);
538   }
add_input_time_diffsTensorflowLiteModelSpecBuilder539   void add_input_time_diffs(int32_t input_time_diffs) {
540     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_TIME_DIFFS, input_time_diffs, 3);
541   }
add_input_num_suggestionsTensorflowLiteModelSpecBuilder542   void add_input_num_suggestions(int32_t input_num_suggestions) {
543     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_NUM_SUGGESTIONS, input_num_suggestions, 4);
544   }
add_input_token_embeddingsTensorflowLiteModelSpecBuilder545   void add_input_token_embeddings(int32_t input_token_embeddings) {
546     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_TOKEN_EMBEDDINGS, input_token_embeddings, -1);
547   }
add_input_num_tokensTensorflowLiteModelSpecBuilder548   void add_input_num_tokens(int32_t input_num_tokens) {
549     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_NUM_TOKENS, input_num_tokens, -1);
550   }
add_output_repliesTensorflowLiteModelSpecBuilder551   void add_output_replies(int32_t output_replies) {
552     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_OUTPUT_REPLIES, output_replies, 0);
553   }
add_output_replies_scoresTensorflowLiteModelSpecBuilder554   void add_output_replies_scores(int32_t output_replies_scores) {
555     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_OUTPUT_REPLIES_SCORES, output_replies_scores, 1);
556   }
add_output_sensitive_topic_scoreTensorflowLiteModelSpecBuilder557   void add_output_sensitive_topic_score(int32_t output_sensitive_topic_score) {
558     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_OUTPUT_SENSITIVE_TOPIC_SCORE, output_sensitive_topic_score, 3);
559   }
add_output_triggering_scoreTensorflowLiteModelSpecBuilder560   void add_output_triggering_score(int32_t output_triggering_score) {
561     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_OUTPUT_TRIGGERING_SCORE, output_triggering_score, 4);
562   }
add_output_actions_scoresTensorflowLiteModelSpecBuilder563   void add_output_actions_scores(int32_t output_actions_scores) {
564     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_OUTPUT_ACTIONS_SCORES, output_actions_scores, 5);
565   }
add_resize_inputsTensorflowLiteModelSpecBuilder566   void add_resize_inputs(bool resize_inputs) {
567     fbb_.AddElement<uint8_t>(TensorflowLiteModelSpec::VT_RESIZE_INPUTS, static_cast<uint8_t>(resize_inputs), 0);
568   }
add_input_flattened_token_embeddingsTensorflowLiteModelSpecBuilder569   void add_input_flattened_token_embeddings(int32_t input_flattened_token_embeddings) {
570     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_FLATTENED_TOKEN_EMBEDDINGS, input_flattened_token_embeddings, -1);
571   }
add_prediction_metadataTensorflowLiteModelSpecBuilder572   void add_prediction_metadata(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>>> prediction_metadata) {
573     fbb_.AddOffset(TensorflowLiteModelSpec::VT_PREDICTION_METADATA, prediction_metadata);
574   }
add_input_name_indexTensorflowLiteModelSpecBuilder575   void add_input_name_index(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>>> input_name_index) {
576     fbb_.AddOffset(TensorflowLiteModelSpec::VT_INPUT_NAME_INDEX, input_name_index);
577   }
add_input_length_to_padTensorflowLiteModelSpecBuilder578   void add_input_length_to_pad(int32_t input_length_to_pad) {
579     fbb_.AddElement<int32_t>(TensorflowLiteModelSpec::VT_INPUT_LENGTH_TO_PAD, input_length_to_pad, 0);
580   }
TensorflowLiteModelSpecBuilderTensorflowLiteModelSpecBuilder581   explicit TensorflowLiteModelSpecBuilder(flatbuffers::FlatBufferBuilder &_fbb)
582         : fbb_(_fbb) {
583     start_ = fbb_.StartTable();
584   }
FinishTensorflowLiteModelSpecBuilder585   flatbuffers::Offset<TensorflowLiteModelSpec> Finish() {
586     const auto end = fbb_.EndTable(start_);
587     auto o = flatbuffers::Offset<TensorflowLiteModelSpec>(end);
588     return o;
589   }
590 };
591 
592 inline flatbuffers::Offset<TensorflowLiteModelSpec> CreateTensorflowLiteModelSpec(
593     flatbuffers::FlatBufferBuilder &_fbb,
594     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> tflite_model = 0,
595     int32_t input_user_id = 0,
596     int32_t input_context = 1,
597     int32_t input_context_length = 2,
598     int32_t input_time_diffs = 3,
599     int32_t input_num_suggestions = 4,
600     int32_t input_token_embeddings = -1,
601     int32_t input_num_tokens = -1,
602     int32_t output_replies = 0,
603     int32_t output_replies_scores = 1,
604     int32_t output_sensitive_topic_score = 3,
605     int32_t output_triggering_score = 4,
606     int32_t output_actions_scores = 5,
607     bool resize_inputs = false,
608     int32_t input_flattened_token_embeddings = -1,
609     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>>> prediction_metadata = 0,
610     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>>> input_name_index = 0,
611     int32_t input_length_to_pad = 0) {
612   TensorflowLiteModelSpecBuilder builder_(_fbb);
613   builder_.add_input_length_to_pad(input_length_to_pad);
614   builder_.add_input_name_index(input_name_index);
615   builder_.add_prediction_metadata(prediction_metadata);
616   builder_.add_input_flattened_token_embeddings(input_flattened_token_embeddings);
617   builder_.add_output_actions_scores(output_actions_scores);
618   builder_.add_output_triggering_score(output_triggering_score);
619   builder_.add_output_sensitive_topic_score(output_sensitive_topic_score);
620   builder_.add_output_replies_scores(output_replies_scores);
621   builder_.add_output_replies(output_replies);
622   builder_.add_input_num_tokens(input_num_tokens);
623   builder_.add_input_token_embeddings(input_token_embeddings);
624   builder_.add_input_num_suggestions(input_num_suggestions);
625   builder_.add_input_time_diffs(input_time_diffs);
626   builder_.add_input_context_length(input_context_length);
627   builder_.add_input_context(input_context);
628   builder_.add_input_user_id(input_user_id);
629   builder_.add_tflite_model(tflite_model);
630   builder_.add_resize_inputs(resize_inputs);
631   return builder_.Finish();
632 }
633 
634 inline flatbuffers::Offset<TensorflowLiteModelSpec> CreateTensorflowLiteModelSpecDirect(
635     flatbuffers::FlatBufferBuilder &_fbb,
636     const std::vector<uint8_t> *tflite_model = nullptr,
637     int32_t input_user_id = 0,
638     int32_t input_context = 1,
639     int32_t input_context_length = 2,
640     int32_t input_time_diffs = 3,
641     int32_t input_num_suggestions = 4,
642     int32_t input_token_embeddings = -1,
643     int32_t input_num_tokens = -1,
644     int32_t output_replies = 0,
645     int32_t output_replies_scores = 1,
646     int32_t output_sensitive_topic_score = 3,
647     int32_t output_triggering_score = 4,
648     int32_t output_actions_scores = 5,
649     bool resize_inputs = false,
650     int32_t input_flattened_token_embeddings = -1,
651     const std::vector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>> *prediction_metadata = nullptr,
652     std::vector<flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>> *input_name_index = nullptr,
653     int32_t input_length_to_pad = 0) {
654   if (tflite_model) { _fbb.ForceVectorAlignment(tflite_model->size(), sizeof(uint8_t), 16); }
655   auto tflite_model__ = tflite_model ? _fbb.CreateVector<uint8_t>(*tflite_model) : 0;
656   auto prediction_metadata__ = prediction_metadata ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>>(*prediction_metadata) : 0;
657   auto input_name_index__ = input_name_index ? _fbb.CreateVectorOfSortedTables<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>(input_name_index) : 0;
658   return libtextclassifier3::CreateTensorflowLiteModelSpec(
659       _fbb,
660       tflite_model__,
661       input_user_id,
662       input_context,
663       input_context_length,
664       input_time_diffs,
665       input_num_suggestions,
666       input_token_embeddings,
667       input_num_tokens,
668       output_replies,
669       output_replies_scores,
670       output_sensitive_topic_score,
671       output_triggering_score,
672       output_actions_scores,
673       resize_inputs,
674       input_flattened_token_embeddings,
675       prediction_metadata__,
676       input_name_index__,
677       input_length_to_pad);
678 }
679 
680 flatbuffers::Offset<TensorflowLiteModelSpec> CreateTensorflowLiteModelSpec(flatbuffers::FlatBufferBuilder &_fbb, const TensorflowLiteModelSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
681 
682 struct ActionsTokenizerOptionsT : public flatbuffers::NativeTable {
683   typedef ActionsTokenizerOptions TableType;
684   libtextclassifier3::TokenizationType type = libtextclassifier3::TokenizationType_INTERNAL_TOKENIZER;
685   bool icu_preserve_whitespace_tokens = false;
686   std::vector<std::unique_ptr<libtextclassifier3::TokenizationCodepointRangeT>> tokenization_codepoint_config{};
687   std::vector<std::unique_ptr<libtextclassifier3::CodepointRangeT>> internal_tokenizer_codepoint_ranges{};
688   bool tokenize_on_script_change = false;
689   ActionsTokenizerOptionsT() = default;
690   ActionsTokenizerOptionsT(const ActionsTokenizerOptionsT &o);
691   ActionsTokenizerOptionsT(ActionsTokenizerOptionsT&&) FLATBUFFERS_NOEXCEPT = default;
692   ActionsTokenizerOptionsT &operator=(ActionsTokenizerOptionsT o) FLATBUFFERS_NOEXCEPT;
693 };
694 
695 struct ActionsTokenizerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
696   typedef ActionsTokenizerOptionsT NativeTableType;
697   typedef ActionsTokenizerOptionsBuilder Builder;
698   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
699     VT_TYPE = 4,
700     VT_ICU_PRESERVE_WHITESPACE_TOKENS = 6,
701     VT_TOKENIZATION_CODEPOINT_CONFIG = 8,
702     VT_INTERNAL_TOKENIZER_CODEPOINT_RANGES = 10,
703     VT_TOKENIZE_ON_SCRIPT_CHANGE = 12
704   };
typeFLATBUFFERS_FINAL_CLASS705   libtextclassifier3::TokenizationType type() const {
706     return static_cast<libtextclassifier3::TokenizationType>(GetField<int32_t>(VT_TYPE, 1));
707   }
icu_preserve_whitespace_tokensFLATBUFFERS_FINAL_CLASS708   bool icu_preserve_whitespace_tokens() const {
709     return GetField<uint8_t>(VT_ICU_PRESERVE_WHITESPACE_TOKENS, 0) != 0;
710   }
tokenization_codepoint_configFLATBUFFERS_FINAL_CLASS711   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>> *tokenization_codepoint_config() const {
712     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>> *>(VT_TOKENIZATION_CODEPOINT_CONFIG);
713   }
internal_tokenizer_codepoint_rangesFLATBUFFERS_FINAL_CLASS714   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::CodepointRange>> *internal_tokenizer_codepoint_ranges() const {
715     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::CodepointRange>> *>(VT_INTERNAL_TOKENIZER_CODEPOINT_RANGES);
716   }
tokenize_on_script_changeFLATBUFFERS_FINAL_CLASS717   bool tokenize_on_script_change() const {
718     return GetField<uint8_t>(VT_TOKENIZE_ON_SCRIPT_CHANGE, 0) != 0;
719   }
VerifyFLATBUFFERS_FINAL_CLASS720   bool Verify(flatbuffers::Verifier &verifier) const {
721     return VerifyTableStart(verifier) &&
722            VerifyField<int32_t>(verifier, VT_TYPE, 4) &&
723            VerifyField<uint8_t>(verifier, VT_ICU_PRESERVE_WHITESPACE_TOKENS, 1) &&
724            VerifyOffset(verifier, VT_TOKENIZATION_CODEPOINT_CONFIG) &&
725            verifier.VerifyVector(tokenization_codepoint_config()) &&
726            verifier.VerifyVectorOfTables(tokenization_codepoint_config()) &&
727            VerifyOffset(verifier, VT_INTERNAL_TOKENIZER_CODEPOINT_RANGES) &&
728            verifier.VerifyVector(internal_tokenizer_codepoint_ranges()) &&
729            verifier.VerifyVectorOfTables(internal_tokenizer_codepoint_ranges()) &&
730            VerifyField<uint8_t>(verifier, VT_TOKENIZE_ON_SCRIPT_CHANGE, 1) &&
731            verifier.EndTable();
732   }
733   ActionsTokenizerOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
734   void UnPackTo(ActionsTokenizerOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
735   static flatbuffers::Offset<ActionsTokenizerOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenizerOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
736 };
737 
738 struct ActionsTokenizerOptionsBuilder {
739   typedef ActionsTokenizerOptions Table;
740   flatbuffers::FlatBufferBuilder &fbb_;
741   flatbuffers::uoffset_t start_;
add_typeActionsTokenizerOptionsBuilder742   void add_type(libtextclassifier3::TokenizationType type) {
743     fbb_.AddElement<int32_t>(ActionsTokenizerOptions::VT_TYPE, static_cast<int32_t>(type), 1);
744   }
add_icu_preserve_whitespace_tokensActionsTokenizerOptionsBuilder745   void add_icu_preserve_whitespace_tokens(bool icu_preserve_whitespace_tokens) {
746     fbb_.AddElement<uint8_t>(ActionsTokenizerOptions::VT_ICU_PRESERVE_WHITESPACE_TOKENS, static_cast<uint8_t>(icu_preserve_whitespace_tokens), 0);
747   }
add_tokenization_codepoint_configActionsTokenizerOptionsBuilder748   void add_tokenization_codepoint_config(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>>> tokenization_codepoint_config) {
749     fbb_.AddOffset(ActionsTokenizerOptions::VT_TOKENIZATION_CODEPOINT_CONFIG, tokenization_codepoint_config);
750   }
add_internal_tokenizer_codepoint_rangesActionsTokenizerOptionsBuilder751   void add_internal_tokenizer_codepoint_ranges(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::CodepointRange>>> internal_tokenizer_codepoint_ranges) {
752     fbb_.AddOffset(ActionsTokenizerOptions::VT_INTERNAL_TOKENIZER_CODEPOINT_RANGES, internal_tokenizer_codepoint_ranges);
753   }
add_tokenize_on_script_changeActionsTokenizerOptionsBuilder754   void add_tokenize_on_script_change(bool tokenize_on_script_change) {
755     fbb_.AddElement<uint8_t>(ActionsTokenizerOptions::VT_TOKENIZE_ON_SCRIPT_CHANGE, static_cast<uint8_t>(tokenize_on_script_change), 0);
756   }
ActionsTokenizerOptionsBuilderActionsTokenizerOptionsBuilder757   explicit ActionsTokenizerOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
758         : fbb_(_fbb) {
759     start_ = fbb_.StartTable();
760   }
FinishActionsTokenizerOptionsBuilder761   flatbuffers::Offset<ActionsTokenizerOptions> Finish() {
762     const auto end = fbb_.EndTable(start_);
763     auto o = flatbuffers::Offset<ActionsTokenizerOptions>(end);
764     return o;
765   }
766 };
767 
768 inline flatbuffers::Offset<ActionsTokenizerOptions> CreateActionsTokenizerOptions(
769     flatbuffers::FlatBufferBuilder &_fbb,
770     libtextclassifier3::TokenizationType type = libtextclassifier3::TokenizationType_INTERNAL_TOKENIZER,
771     bool icu_preserve_whitespace_tokens = false,
772     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>>> tokenization_codepoint_config = 0,
773     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::CodepointRange>>> internal_tokenizer_codepoint_ranges = 0,
774     bool tokenize_on_script_change = false) {
775   ActionsTokenizerOptionsBuilder builder_(_fbb);
776   builder_.add_internal_tokenizer_codepoint_ranges(internal_tokenizer_codepoint_ranges);
777   builder_.add_tokenization_codepoint_config(tokenization_codepoint_config);
778   builder_.add_type(type);
779   builder_.add_tokenize_on_script_change(tokenize_on_script_change);
780   builder_.add_icu_preserve_whitespace_tokens(icu_preserve_whitespace_tokens);
781   return builder_.Finish();
782 }
783 
784 inline flatbuffers::Offset<ActionsTokenizerOptions> CreateActionsTokenizerOptionsDirect(
785     flatbuffers::FlatBufferBuilder &_fbb,
786     libtextclassifier3::TokenizationType type = libtextclassifier3::TokenizationType_INTERNAL_TOKENIZER,
787     bool icu_preserve_whitespace_tokens = false,
788     const std::vector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>> *tokenization_codepoint_config = nullptr,
789     const std::vector<flatbuffers::Offset<libtextclassifier3::CodepointRange>> *internal_tokenizer_codepoint_ranges = nullptr,
790     bool tokenize_on_script_change = false) {
791   auto tokenization_codepoint_config__ = tokenization_codepoint_config ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>>(*tokenization_codepoint_config) : 0;
792   auto internal_tokenizer_codepoint_ranges__ = internal_tokenizer_codepoint_ranges ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::CodepointRange>>(*internal_tokenizer_codepoint_ranges) : 0;
793   return libtextclassifier3::CreateActionsTokenizerOptions(
794       _fbb,
795       type,
796       icu_preserve_whitespace_tokens,
797       tokenization_codepoint_config__,
798       internal_tokenizer_codepoint_ranges__,
799       tokenize_on_script_change);
800 }
801 
802 flatbuffers::Offset<ActionsTokenizerOptions> CreateActionsTokenizerOptions(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenizerOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
803 
804 struct ActionsTokenFeatureProcessorOptionsT : public flatbuffers::NativeTable {
805   typedef ActionsTokenFeatureProcessorOptions TableType;
806   std::unique_ptr<libtextclassifier3::ActionsTokenizerOptionsT> tokenizer_options{};
807   std::vector<uint8_t> embedding_model{};
808   int32_t embedding_size = -1;
809   int32_t embedding_quantization_bits = 8;
810   int32_t num_buckets = -1;
811   std::vector<int32_t> chargram_orders{};
812   bool extract_case_feature = false;
813   bool unicode_aware_features = false;
814   std::vector<std::string> regexp_features{};
815   bool remap_digits = false;
816   bool lowercase_tokens = false;
817   int32_t max_token_length = 20;
818   int32_t max_num_tokens_per_message = -1;
819   int32_t min_num_tokens_per_message = -1;
820   int32_t max_num_total_tokens = -1;
821   int32_t min_num_total_tokens = -1;
822   int32_t padding_token_id = 0;
823   int32_t start_token_id = 1;
824   int32_t end_token_id = 2;
825   ActionsTokenFeatureProcessorOptionsT() = default;
826   ActionsTokenFeatureProcessorOptionsT(const ActionsTokenFeatureProcessorOptionsT &o);
827   ActionsTokenFeatureProcessorOptionsT(ActionsTokenFeatureProcessorOptionsT&&) FLATBUFFERS_NOEXCEPT = default;
828   ActionsTokenFeatureProcessorOptionsT &operator=(ActionsTokenFeatureProcessorOptionsT o) FLATBUFFERS_NOEXCEPT;
829 };
830 
831 struct ActionsTokenFeatureProcessorOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
832   typedef ActionsTokenFeatureProcessorOptionsT NativeTableType;
833   typedef ActionsTokenFeatureProcessorOptionsBuilder Builder;
834   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
835     VT_TOKENIZER_OPTIONS = 4,
836     VT_EMBEDDING_MODEL = 6,
837     VT_EMBEDDING_SIZE = 8,
838     VT_EMBEDDING_QUANTIZATION_BITS = 10,
839     VT_NUM_BUCKETS = 12,
840     VT_CHARGRAM_ORDERS = 14,
841     VT_EXTRACT_CASE_FEATURE = 16,
842     VT_UNICODE_AWARE_FEATURES = 18,
843     VT_REGEXP_FEATURES = 20,
844     VT_REMAP_DIGITS = 22,
845     VT_LOWERCASE_TOKENS = 24,
846     VT_MAX_TOKEN_LENGTH = 26,
847     VT_MAX_NUM_TOKENS_PER_MESSAGE = 28,
848     VT_MIN_NUM_TOKENS_PER_MESSAGE = 30,
849     VT_MAX_NUM_TOTAL_TOKENS = 32,
850     VT_MIN_NUM_TOTAL_TOKENS = 34,
851     VT_PADDING_TOKEN_ID = 36,
852     VT_START_TOKEN_ID = 38,
853     VT_END_TOKEN_ID = 40
854   };
tokenizer_optionsFLATBUFFERS_FINAL_CLASS855   const libtextclassifier3::ActionsTokenizerOptions *tokenizer_options() const {
856     return GetPointer<const libtextclassifier3::ActionsTokenizerOptions *>(VT_TOKENIZER_OPTIONS);
857   }
embedding_modelFLATBUFFERS_FINAL_CLASS858   const flatbuffers::Vector<uint8_t> *embedding_model() const {
859     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_EMBEDDING_MODEL);
860   }
embedding_sizeFLATBUFFERS_FINAL_CLASS861   int32_t embedding_size() const {
862     return GetField<int32_t>(VT_EMBEDDING_SIZE, -1);
863   }
embedding_quantization_bitsFLATBUFFERS_FINAL_CLASS864   int32_t embedding_quantization_bits() const {
865     return GetField<int32_t>(VT_EMBEDDING_QUANTIZATION_BITS, 8);
866   }
num_bucketsFLATBUFFERS_FINAL_CLASS867   int32_t num_buckets() const {
868     return GetField<int32_t>(VT_NUM_BUCKETS, -1);
869   }
chargram_ordersFLATBUFFERS_FINAL_CLASS870   const flatbuffers::Vector<int32_t> *chargram_orders() const {
871     return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_CHARGRAM_ORDERS);
872   }
extract_case_featureFLATBUFFERS_FINAL_CLASS873   bool extract_case_feature() const {
874     return GetField<uint8_t>(VT_EXTRACT_CASE_FEATURE, 0) != 0;
875   }
unicode_aware_featuresFLATBUFFERS_FINAL_CLASS876   bool unicode_aware_features() const {
877     return GetField<uint8_t>(VT_UNICODE_AWARE_FEATURES, 0) != 0;
878   }
regexp_featuresFLATBUFFERS_FINAL_CLASS879   const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *regexp_features() const {
880     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_REGEXP_FEATURES);
881   }
remap_digitsFLATBUFFERS_FINAL_CLASS882   bool remap_digits() const {
883     return GetField<uint8_t>(VT_REMAP_DIGITS, 0) != 0;
884   }
lowercase_tokensFLATBUFFERS_FINAL_CLASS885   bool lowercase_tokens() const {
886     return GetField<uint8_t>(VT_LOWERCASE_TOKENS, 0) != 0;
887   }
max_token_lengthFLATBUFFERS_FINAL_CLASS888   int32_t max_token_length() const {
889     return GetField<int32_t>(VT_MAX_TOKEN_LENGTH, 20);
890   }
max_num_tokens_per_messageFLATBUFFERS_FINAL_CLASS891   int32_t max_num_tokens_per_message() const {
892     return GetField<int32_t>(VT_MAX_NUM_TOKENS_PER_MESSAGE, -1);
893   }
min_num_tokens_per_messageFLATBUFFERS_FINAL_CLASS894   int32_t min_num_tokens_per_message() const {
895     return GetField<int32_t>(VT_MIN_NUM_TOKENS_PER_MESSAGE, -1);
896   }
max_num_total_tokensFLATBUFFERS_FINAL_CLASS897   int32_t max_num_total_tokens() const {
898     return GetField<int32_t>(VT_MAX_NUM_TOTAL_TOKENS, -1);
899   }
min_num_total_tokensFLATBUFFERS_FINAL_CLASS900   int32_t min_num_total_tokens() const {
901     return GetField<int32_t>(VT_MIN_NUM_TOTAL_TOKENS, -1);
902   }
padding_token_idFLATBUFFERS_FINAL_CLASS903   int32_t padding_token_id() const {
904     return GetField<int32_t>(VT_PADDING_TOKEN_ID, 0);
905   }
start_token_idFLATBUFFERS_FINAL_CLASS906   int32_t start_token_id() const {
907     return GetField<int32_t>(VT_START_TOKEN_ID, 1);
908   }
end_token_idFLATBUFFERS_FINAL_CLASS909   int32_t end_token_id() const {
910     return GetField<int32_t>(VT_END_TOKEN_ID, 2);
911   }
VerifyFLATBUFFERS_FINAL_CLASS912   bool Verify(flatbuffers::Verifier &verifier) const {
913     return VerifyTableStart(verifier) &&
914            VerifyOffset(verifier, VT_TOKENIZER_OPTIONS) &&
915            verifier.VerifyTable(tokenizer_options()) &&
916            VerifyOffset(verifier, VT_EMBEDDING_MODEL) &&
917            verifier.VerifyVector(embedding_model()) &&
918            VerifyField<int32_t>(verifier, VT_EMBEDDING_SIZE, 4) &&
919            VerifyField<int32_t>(verifier, VT_EMBEDDING_QUANTIZATION_BITS, 4) &&
920            VerifyField<int32_t>(verifier, VT_NUM_BUCKETS, 4) &&
921            VerifyOffset(verifier, VT_CHARGRAM_ORDERS) &&
922            verifier.VerifyVector(chargram_orders()) &&
923            VerifyField<uint8_t>(verifier, VT_EXTRACT_CASE_FEATURE, 1) &&
924            VerifyField<uint8_t>(verifier, VT_UNICODE_AWARE_FEATURES, 1) &&
925            VerifyOffset(verifier, VT_REGEXP_FEATURES) &&
926            verifier.VerifyVector(regexp_features()) &&
927            verifier.VerifyVectorOfStrings(regexp_features()) &&
928            VerifyField<uint8_t>(verifier, VT_REMAP_DIGITS, 1) &&
929            VerifyField<uint8_t>(verifier, VT_LOWERCASE_TOKENS, 1) &&
930            VerifyField<int32_t>(verifier, VT_MAX_TOKEN_LENGTH, 4) &&
931            VerifyField<int32_t>(verifier, VT_MAX_NUM_TOKENS_PER_MESSAGE, 4) &&
932            VerifyField<int32_t>(verifier, VT_MIN_NUM_TOKENS_PER_MESSAGE, 4) &&
933            VerifyField<int32_t>(verifier, VT_MAX_NUM_TOTAL_TOKENS, 4) &&
934            VerifyField<int32_t>(verifier, VT_MIN_NUM_TOTAL_TOKENS, 4) &&
935            VerifyField<int32_t>(verifier, VT_PADDING_TOKEN_ID, 4) &&
936            VerifyField<int32_t>(verifier, VT_START_TOKEN_ID, 4) &&
937            VerifyField<int32_t>(verifier, VT_END_TOKEN_ID, 4) &&
938            verifier.EndTable();
939   }
940   ActionsTokenFeatureProcessorOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
941   void UnPackTo(ActionsTokenFeatureProcessorOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
942   static flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenFeatureProcessorOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
943 };
944 
945 struct ActionsTokenFeatureProcessorOptionsBuilder {
946   typedef ActionsTokenFeatureProcessorOptions Table;
947   flatbuffers::FlatBufferBuilder &fbb_;
948   flatbuffers::uoffset_t start_;
add_tokenizer_optionsActionsTokenFeatureProcessorOptionsBuilder949   void add_tokenizer_options(flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options) {
950     fbb_.AddOffset(ActionsTokenFeatureProcessorOptions::VT_TOKENIZER_OPTIONS, tokenizer_options);
951   }
add_embedding_modelActionsTokenFeatureProcessorOptionsBuilder952   void add_embedding_model(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> embedding_model) {
953     fbb_.AddOffset(ActionsTokenFeatureProcessorOptions::VT_EMBEDDING_MODEL, embedding_model);
954   }
add_embedding_sizeActionsTokenFeatureProcessorOptionsBuilder955   void add_embedding_size(int32_t embedding_size) {
956     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_EMBEDDING_SIZE, embedding_size, -1);
957   }
add_embedding_quantization_bitsActionsTokenFeatureProcessorOptionsBuilder958   void add_embedding_quantization_bits(int32_t embedding_quantization_bits) {
959     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_EMBEDDING_QUANTIZATION_BITS, embedding_quantization_bits, 8);
960   }
add_num_bucketsActionsTokenFeatureProcessorOptionsBuilder961   void add_num_buckets(int32_t num_buckets) {
962     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_NUM_BUCKETS, num_buckets, -1);
963   }
add_chargram_ordersActionsTokenFeatureProcessorOptionsBuilder964   void add_chargram_orders(flatbuffers::Offset<flatbuffers::Vector<int32_t>> chargram_orders) {
965     fbb_.AddOffset(ActionsTokenFeatureProcessorOptions::VT_CHARGRAM_ORDERS, chargram_orders);
966   }
add_extract_case_featureActionsTokenFeatureProcessorOptionsBuilder967   void add_extract_case_feature(bool extract_case_feature) {
968     fbb_.AddElement<uint8_t>(ActionsTokenFeatureProcessorOptions::VT_EXTRACT_CASE_FEATURE, static_cast<uint8_t>(extract_case_feature), 0);
969   }
add_unicode_aware_featuresActionsTokenFeatureProcessorOptionsBuilder970   void add_unicode_aware_features(bool unicode_aware_features) {
971     fbb_.AddElement<uint8_t>(ActionsTokenFeatureProcessorOptions::VT_UNICODE_AWARE_FEATURES, static_cast<uint8_t>(unicode_aware_features), 0);
972   }
add_regexp_featuresActionsTokenFeatureProcessorOptionsBuilder973   void add_regexp_features(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> regexp_features) {
974     fbb_.AddOffset(ActionsTokenFeatureProcessorOptions::VT_REGEXP_FEATURES, regexp_features);
975   }
add_remap_digitsActionsTokenFeatureProcessorOptionsBuilder976   void add_remap_digits(bool remap_digits) {
977     fbb_.AddElement<uint8_t>(ActionsTokenFeatureProcessorOptions::VT_REMAP_DIGITS, static_cast<uint8_t>(remap_digits), 0);
978   }
add_lowercase_tokensActionsTokenFeatureProcessorOptionsBuilder979   void add_lowercase_tokens(bool lowercase_tokens) {
980     fbb_.AddElement<uint8_t>(ActionsTokenFeatureProcessorOptions::VT_LOWERCASE_TOKENS, static_cast<uint8_t>(lowercase_tokens), 0);
981   }
add_max_token_lengthActionsTokenFeatureProcessorOptionsBuilder982   void add_max_token_length(int32_t max_token_length) {
983     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_MAX_TOKEN_LENGTH, max_token_length, 20);
984   }
add_max_num_tokens_per_messageActionsTokenFeatureProcessorOptionsBuilder985   void add_max_num_tokens_per_message(int32_t max_num_tokens_per_message) {
986     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_MAX_NUM_TOKENS_PER_MESSAGE, max_num_tokens_per_message, -1);
987   }
add_min_num_tokens_per_messageActionsTokenFeatureProcessorOptionsBuilder988   void add_min_num_tokens_per_message(int32_t min_num_tokens_per_message) {
989     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_MIN_NUM_TOKENS_PER_MESSAGE, min_num_tokens_per_message, -1);
990   }
add_max_num_total_tokensActionsTokenFeatureProcessorOptionsBuilder991   void add_max_num_total_tokens(int32_t max_num_total_tokens) {
992     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_MAX_NUM_TOTAL_TOKENS, max_num_total_tokens, -1);
993   }
add_min_num_total_tokensActionsTokenFeatureProcessorOptionsBuilder994   void add_min_num_total_tokens(int32_t min_num_total_tokens) {
995     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_MIN_NUM_TOTAL_TOKENS, min_num_total_tokens, -1);
996   }
add_padding_token_idActionsTokenFeatureProcessorOptionsBuilder997   void add_padding_token_id(int32_t padding_token_id) {
998     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_PADDING_TOKEN_ID, padding_token_id, 0);
999   }
add_start_token_idActionsTokenFeatureProcessorOptionsBuilder1000   void add_start_token_id(int32_t start_token_id) {
1001     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_START_TOKEN_ID, start_token_id, 1);
1002   }
add_end_token_idActionsTokenFeatureProcessorOptionsBuilder1003   void add_end_token_id(int32_t end_token_id) {
1004     fbb_.AddElement<int32_t>(ActionsTokenFeatureProcessorOptions::VT_END_TOKEN_ID, end_token_id, 2);
1005   }
ActionsTokenFeatureProcessorOptionsBuilderActionsTokenFeatureProcessorOptionsBuilder1006   explicit ActionsTokenFeatureProcessorOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1007         : fbb_(_fbb) {
1008     start_ = fbb_.StartTable();
1009   }
FinishActionsTokenFeatureProcessorOptionsBuilder1010   flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> Finish() {
1011     const auto end = fbb_.EndTable(start_);
1012     auto o = flatbuffers::Offset<ActionsTokenFeatureProcessorOptions>(end);
1013     return o;
1014   }
1015 };
1016 
1017 inline flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> CreateActionsTokenFeatureProcessorOptions(
1018     flatbuffers::FlatBufferBuilder &_fbb,
1019     flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options = 0,
1020     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> embedding_model = 0,
1021     int32_t embedding_size = -1,
1022     int32_t embedding_quantization_bits = 8,
1023     int32_t num_buckets = -1,
1024     flatbuffers::Offset<flatbuffers::Vector<int32_t>> chargram_orders = 0,
1025     bool extract_case_feature = false,
1026     bool unicode_aware_features = false,
1027     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> regexp_features = 0,
1028     bool remap_digits = false,
1029     bool lowercase_tokens = false,
1030     int32_t max_token_length = 20,
1031     int32_t max_num_tokens_per_message = -1,
1032     int32_t min_num_tokens_per_message = -1,
1033     int32_t max_num_total_tokens = -1,
1034     int32_t min_num_total_tokens = -1,
1035     int32_t padding_token_id = 0,
1036     int32_t start_token_id = 1,
1037     int32_t end_token_id = 2) {
1038   ActionsTokenFeatureProcessorOptionsBuilder builder_(_fbb);
1039   builder_.add_end_token_id(end_token_id);
1040   builder_.add_start_token_id(start_token_id);
1041   builder_.add_padding_token_id(padding_token_id);
1042   builder_.add_min_num_total_tokens(min_num_total_tokens);
1043   builder_.add_max_num_total_tokens(max_num_total_tokens);
1044   builder_.add_min_num_tokens_per_message(min_num_tokens_per_message);
1045   builder_.add_max_num_tokens_per_message(max_num_tokens_per_message);
1046   builder_.add_max_token_length(max_token_length);
1047   builder_.add_regexp_features(regexp_features);
1048   builder_.add_chargram_orders(chargram_orders);
1049   builder_.add_num_buckets(num_buckets);
1050   builder_.add_embedding_quantization_bits(embedding_quantization_bits);
1051   builder_.add_embedding_size(embedding_size);
1052   builder_.add_embedding_model(embedding_model);
1053   builder_.add_tokenizer_options(tokenizer_options);
1054   builder_.add_lowercase_tokens(lowercase_tokens);
1055   builder_.add_remap_digits(remap_digits);
1056   builder_.add_unicode_aware_features(unicode_aware_features);
1057   builder_.add_extract_case_feature(extract_case_feature);
1058   return builder_.Finish();
1059 }
1060 
1061 inline flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> CreateActionsTokenFeatureProcessorOptionsDirect(
1062     flatbuffers::FlatBufferBuilder &_fbb,
1063     flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options = 0,
1064     const std::vector<uint8_t> *embedding_model = nullptr,
1065     int32_t embedding_size = -1,
1066     int32_t embedding_quantization_bits = 8,
1067     int32_t num_buckets = -1,
1068     const std::vector<int32_t> *chargram_orders = nullptr,
1069     bool extract_case_feature = false,
1070     bool unicode_aware_features = false,
1071     const std::vector<flatbuffers::Offset<flatbuffers::String>> *regexp_features = nullptr,
1072     bool remap_digits = false,
1073     bool lowercase_tokens = false,
1074     int32_t max_token_length = 20,
1075     int32_t max_num_tokens_per_message = -1,
1076     int32_t min_num_tokens_per_message = -1,
1077     int32_t max_num_total_tokens = -1,
1078     int32_t min_num_total_tokens = -1,
1079     int32_t padding_token_id = 0,
1080     int32_t start_token_id = 1,
1081     int32_t end_token_id = 2) {
1082   if (embedding_model) { _fbb.ForceVectorAlignment(embedding_model->size(), sizeof(uint8_t), 16); }
1083   auto embedding_model__ = embedding_model ? _fbb.CreateVector<uint8_t>(*embedding_model) : 0;
1084   auto chargram_orders__ = chargram_orders ? _fbb.CreateVector<int32_t>(*chargram_orders) : 0;
1085   auto regexp_features__ = regexp_features ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*regexp_features) : 0;
1086   return libtextclassifier3::CreateActionsTokenFeatureProcessorOptions(
1087       _fbb,
1088       tokenizer_options,
1089       embedding_model__,
1090       embedding_size,
1091       embedding_quantization_bits,
1092       num_buckets,
1093       chargram_orders__,
1094       extract_case_feature,
1095       unicode_aware_features,
1096       regexp_features__,
1097       remap_digits,
1098       lowercase_tokens,
1099       max_token_length,
1100       max_num_tokens_per_message,
1101       min_num_tokens_per_message,
1102       max_num_total_tokens,
1103       min_num_total_tokens,
1104       padding_token_id,
1105       start_token_id,
1106       end_token_id);
1107 }
1108 
1109 flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> CreateActionsTokenFeatureProcessorOptions(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenFeatureProcessorOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1110 
1111 struct NGramLinearRegressionModelT : public flatbuffers::NativeTable {
1112   typedef NGramLinearRegressionModel TableType;
1113   std::vector<uint32_t> hashed_ngram_tokens{};
1114   std::vector<uint16_t> ngram_start_offsets{};
1115   std::vector<float> ngram_weights{};
1116   float default_token_weight = 0.0f;
1117   int32_t max_denom_ngram_length = 0;
1118   int32_t max_skips = 0;
1119   float threshold = 0.0f;
1120   std::unique_ptr<libtextclassifier3::ActionsTokenizerOptionsT> tokenizer_options{};
1121   NGramLinearRegressionModelT() = default;
1122   NGramLinearRegressionModelT(const NGramLinearRegressionModelT &o);
1123   NGramLinearRegressionModelT(NGramLinearRegressionModelT&&) FLATBUFFERS_NOEXCEPT = default;
1124   NGramLinearRegressionModelT &operator=(NGramLinearRegressionModelT o) FLATBUFFERS_NOEXCEPT;
1125 };
1126 
1127 struct NGramLinearRegressionModel FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1128   typedef NGramLinearRegressionModelT NativeTableType;
1129   typedef NGramLinearRegressionModelBuilder Builder;
1130   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1131     VT_HASHED_NGRAM_TOKENS = 4,
1132     VT_NGRAM_START_OFFSETS = 6,
1133     VT_NGRAM_WEIGHTS = 8,
1134     VT_DEFAULT_TOKEN_WEIGHT = 10,
1135     VT_MAX_DENOM_NGRAM_LENGTH = 12,
1136     VT_MAX_SKIPS = 14,
1137     VT_THRESHOLD = 16,
1138     VT_TOKENIZER_OPTIONS = 18
1139   };
hashed_ngram_tokensFLATBUFFERS_FINAL_CLASS1140   const flatbuffers::Vector<uint32_t> *hashed_ngram_tokens() const {
1141     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_HASHED_NGRAM_TOKENS);
1142   }
ngram_start_offsetsFLATBUFFERS_FINAL_CLASS1143   const flatbuffers::Vector<uint16_t> *ngram_start_offsets() const {
1144     return GetPointer<const flatbuffers::Vector<uint16_t> *>(VT_NGRAM_START_OFFSETS);
1145   }
ngram_weightsFLATBUFFERS_FINAL_CLASS1146   const flatbuffers::Vector<float> *ngram_weights() const {
1147     return GetPointer<const flatbuffers::Vector<float> *>(VT_NGRAM_WEIGHTS);
1148   }
default_token_weightFLATBUFFERS_FINAL_CLASS1149   float default_token_weight() const {
1150     return GetField<float>(VT_DEFAULT_TOKEN_WEIGHT, 0.0f);
1151   }
max_denom_ngram_lengthFLATBUFFERS_FINAL_CLASS1152   int32_t max_denom_ngram_length() const {
1153     return GetField<int32_t>(VT_MAX_DENOM_NGRAM_LENGTH, 0);
1154   }
max_skipsFLATBUFFERS_FINAL_CLASS1155   int32_t max_skips() const {
1156     return GetField<int32_t>(VT_MAX_SKIPS, 0);
1157   }
thresholdFLATBUFFERS_FINAL_CLASS1158   float threshold() const {
1159     return GetField<float>(VT_THRESHOLD, 0.0f);
1160   }
tokenizer_optionsFLATBUFFERS_FINAL_CLASS1161   const libtextclassifier3::ActionsTokenizerOptions *tokenizer_options() const {
1162     return GetPointer<const libtextclassifier3::ActionsTokenizerOptions *>(VT_TOKENIZER_OPTIONS);
1163   }
VerifyFLATBUFFERS_FINAL_CLASS1164   bool Verify(flatbuffers::Verifier &verifier) const {
1165     return VerifyTableStart(verifier) &&
1166            VerifyOffset(verifier, VT_HASHED_NGRAM_TOKENS) &&
1167            verifier.VerifyVector(hashed_ngram_tokens()) &&
1168            VerifyOffset(verifier, VT_NGRAM_START_OFFSETS) &&
1169            verifier.VerifyVector(ngram_start_offsets()) &&
1170            VerifyOffset(verifier, VT_NGRAM_WEIGHTS) &&
1171            verifier.VerifyVector(ngram_weights()) &&
1172            VerifyField<float>(verifier, VT_DEFAULT_TOKEN_WEIGHT, 4) &&
1173            VerifyField<int32_t>(verifier, VT_MAX_DENOM_NGRAM_LENGTH, 4) &&
1174            VerifyField<int32_t>(verifier, VT_MAX_SKIPS, 4) &&
1175            VerifyField<float>(verifier, VT_THRESHOLD, 4) &&
1176            VerifyOffset(verifier, VT_TOKENIZER_OPTIONS) &&
1177            verifier.VerifyTable(tokenizer_options()) &&
1178            verifier.EndTable();
1179   }
1180   NGramLinearRegressionModelT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1181   void UnPackTo(NGramLinearRegressionModelT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1182   static flatbuffers::Offset<NGramLinearRegressionModel> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NGramLinearRegressionModelT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1183 };
1184 
1185 struct NGramLinearRegressionModelBuilder {
1186   typedef NGramLinearRegressionModel Table;
1187   flatbuffers::FlatBufferBuilder &fbb_;
1188   flatbuffers::uoffset_t start_;
add_hashed_ngram_tokensNGramLinearRegressionModelBuilder1189   void add_hashed_ngram_tokens(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> hashed_ngram_tokens) {
1190     fbb_.AddOffset(NGramLinearRegressionModel::VT_HASHED_NGRAM_TOKENS, hashed_ngram_tokens);
1191   }
add_ngram_start_offsetsNGramLinearRegressionModelBuilder1192   void add_ngram_start_offsets(flatbuffers::Offset<flatbuffers::Vector<uint16_t>> ngram_start_offsets) {
1193     fbb_.AddOffset(NGramLinearRegressionModel::VT_NGRAM_START_OFFSETS, ngram_start_offsets);
1194   }
add_ngram_weightsNGramLinearRegressionModelBuilder1195   void add_ngram_weights(flatbuffers::Offset<flatbuffers::Vector<float>> ngram_weights) {
1196     fbb_.AddOffset(NGramLinearRegressionModel::VT_NGRAM_WEIGHTS, ngram_weights);
1197   }
add_default_token_weightNGramLinearRegressionModelBuilder1198   void add_default_token_weight(float default_token_weight) {
1199     fbb_.AddElement<float>(NGramLinearRegressionModel::VT_DEFAULT_TOKEN_WEIGHT, default_token_weight, 0.0f);
1200   }
add_max_denom_ngram_lengthNGramLinearRegressionModelBuilder1201   void add_max_denom_ngram_length(int32_t max_denom_ngram_length) {
1202     fbb_.AddElement<int32_t>(NGramLinearRegressionModel::VT_MAX_DENOM_NGRAM_LENGTH, max_denom_ngram_length, 0);
1203   }
add_max_skipsNGramLinearRegressionModelBuilder1204   void add_max_skips(int32_t max_skips) {
1205     fbb_.AddElement<int32_t>(NGramLinearRegressionModel::VT_MAX_SKIPS, max_skips, 0);
1206   }
add_thresholdNGramLinearRegressionModelBuilder1207   void add_threshold(float threshold) {
1208     fbb_.AddElement<float>(NGramLinearRegressionModel::VT_THRESHOLD, threshold, 0.0f);
1209   }
add_tokenizer_optionsNGramLinearRegressionModelBuilder1210   void add_tokenizer_options(flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options) {
1211     fbb_.AddOffset(NGramLinearRegressionModel::VT_TOKENIZER_OPTIONS, tokenizer_options);
1212   }
NGramLinearRegressionModelBuilderNGramLinearRegressionModelBuilder1213   explicit NGramLinearRegressionModelBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1214         : fbb_(_fbb) {
1215     start_ = fbb_.StartTable();
1216   }
FinishNGramLinearRegressionModelBuilder1217   flatbuffers::Offset<NGramLinearRegressionModel> Finish() {
1218     const auto end = fbb_.EndTable(start_);
1219     auto o = flatbuffers::Offset<NGramLinearRegressionModel>(end);
1220     return o;
1221   }
1222 };
1223 
1224 inline flatbuffers::Offset<NGramLinearRegressionModel> CreateNGramLinearRegressionModel(
1225     flatbuffers::FlatBufferBuilder &_fbb,
1226     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> hashed_ngram_tokens = 0,
1227     flatbuffers::Offset<flatbuffers::Vector<uint16_t>> ngram_start_offsets = 0,
1228     flatbuffers::Offset<flatbuffers::Vector<float>> ngram_weights = 0,
1229     float default_token_weight = 0.0f,
1230     int32_t max_denom_ngram_length = 0,
1231     int32_t max_skips = 0,
1232     float threshold = 0.0f,
1233     flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options = 0) {
1234   NGramLinearRegressionModelBuilder builder_(_fbb);
1235   builder_.add_tokenizer_options(tokenizer_options);
1236   builder_.add_threshold(threshold);
1237   builder_.add_max_skips(max_skips);
1238   builder_.add_max_denom_ngram_length(max_denom_ngram_length);
1239   builder_.add_default_token_weight(default_token_weight);
1240   builder_.add_ngram_weights(ngram_weights);
1241   builder_.add_ngram_start_offsets(ngram_start_offsets);
1242   builder_.add_hashed_ngram_tokens(hashed_ngram_tokens);
1243   return builder_.Finish();
1244 }
1245 
1246 inline flatbuffers::Offset<NGramLinearRegressionModel> CreateNGramLinearRegressionModelDirect(
1247     flatbuffers::FlatBufferBuilder &_fbb,
1248     const std::vector<uint32_t> *hashed_ngram_tokens = nullptr,
1249     const std::vector<uint16_t> *ngram_start_offsets = nullptr,
1250     const std::vector<float> *ngram_weights = nullptr,
1251     float default_token_weight = 0.0f,
1252     int32_t max_denom_ngram_length = 0,
1253     int32_t max_skips = 0,
1254     float threshold = 0.0f,
1255     flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options = 0) {
1256   auto hashed_ngram_tokens__ = hashed_ngram_tokens ? _fbb.CreateVector<uint32_t>(*hashed_ngram_tokens) : 0;
1257   auto ngram_start_offsets__ = ngram_start_offsets ? _fbb.CreateVector<uint16_t>(*ngram_start_offsets) : 0;
1258   auto ngram_weights__ = ngram_weights ? _fbb.CreateVector<float>(*ngram_weights) : 0;
1259   return libtextclassifier3::CreateNGramLinearRegressionModel(
1260       _fbb,
1261       hashed_ngram_tokens__,
1262       ngram_start_offsets__,
1263       ngram_weights__,
1264       default_token_weight,
1265       max_denom_ngram_length,
1266       max_skips,
1267       threshold,
1268       tokenizer_options);
1269 }
1270 
1271 flatbuffers::Offset<NGramLinearRegressionModel> CreateNGramLinearRegressionModel(flatbuffers::FlatBufferBuilder &_fbb, const NGramLinearRegressionModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1272 
1273 struct TFLiteSensitiveClassifierConfigT : public flatbuffers::NativeTable {
1274   typedef TFLiteSensitiveClassifierConfig TableType;
1275   std::unique_ptr<libtextclassifier3::TensorflowLiteModelSpecT> model_spec{};
1276   float threshold = 0.0f;
1277   TFLiteSensitiveClassifierConfigT() = default;
1278   TFLiteSensitiveClassifierConfigT(const TFLiteSensitiveClassifierConfigT &o);
1279   TFLiteSensitiveClassifierConfigT(TFLiteSensitiveClassifierConfigT&&) FLATBUFFERS_NOEXCEPT = default;
1280   TFLiteSensitiveClassifierConfigT &operator=(TFLiteSensitiveClassifierConfigT o) FLATBUFFERS_NOEXCEPT;
1281 };
1282 
1283 struct TFLiteSensitiveClassifierConfig FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1284   typedef TFLiteSensitiveClassifierConfigT NativeTableType;
1285   typedef TFLiteSensitiveClassifierConfigBuilder Builder;
1286   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1287     VT_MODEL_SPEC = 4,
1288     VT_THRESHOLD = 6
1289   };
model_specFLATBUFFERS_FINAL_CLASS1290   const libtextclassifier3::TensorflowLiteModelSpec *model_spec() const {
1291     return GetPointer<const libtextclassifier3::TensorflowLiteModelSpec *>(VT_MODEL_SPEC);
1292   }
thresholdFLATBUFFERS_FINAL_CLASS1293   float threshold() const {
1294     return GetField<float>(VT_THRESHOLD, 0.0f);
1295   }
VerifyFLATBUFFERS_FINAL_CLASS1296   bool Verify(flatbuffers::Verifier &verifier) const {
1297     return VerifyTableStart(verifier) &&
1298            VerifyOffset(verifier, VT_MODEL_SPEC) &&
1299            verifier.VerifyTable(model_spec()) &&
1300            VerifyField<float>(verifier, VT_THRESHOLD, 4) &&
1301            verifier.EndTable();
1302   }
1303   TFLiteSensitiveClassifierConfigT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1304   void UnPackTo(TFLiteSensitiveClassifierConfigT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1305   static flatbuffers::Offset<TFLiteSensitiveClassifierConfig> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TFLiteSensitiveClassifierConfigT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1306 };
1307 
1308 struct TFLiteSensitiveClassifierConfigBuilder {
1309   typedef TFLiteSensitiveClassifierConfig Table;
1310   flatbuffers::FlatBufferBuilder &fbb_;
1311   flatbuffers::uoffset_t start_;
add_model_specTFLiteSensitiveClassifierConfigBuilder1312   void add_model_spec(flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec> model_spec) {
1313     fbb_.AddOffset(TFLiteSensitiveClassifierConfig::VT_MODEL_SPEC, model_spec);
1314   }
add_thresholdTFLiteSensitiveClassifierConfigBuilder1315   void add_threshold(float threshold) {
1316     fbb_.AddElement<float>(TFLiteSensitiveClassifierConfig::VT_THRESHOLD, threshold, 0.0f);
1317   }
TFLiteSensitiveClassifierConfigBuilderTFLiteSensitiveClassifierConfigBuilder1318   explicit TFLiteSensitiveClassifierConfigBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1319         : fbb_(_fbb) {
1320     start_ = fbb_.StartTable();
1321   }
FinishTFLiteSensitiveClassifierConfigBuilder1322   flatbuffers::Offset<TFLiteSensitiveClassifierConfig> Finish() {
1323     const auto end = fbb_.EndTable(start_);
1324     auto o = flatbuffers::Offset<TFLiteSensitiveClassifierConfig>(end);
1325     return o;
1326   }
1327 };
1328 
1329 inline flatbuffers::Offset<TFLiteSensitiveClassifierConfig> CreateTFLiteSensitiveClassifierConfig(
1330     flatbuffers::FlatBufferBuilder &_fbb,
1331     flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec> model_spec = 0,
1332     float threshold = 0.0f) {
1333   TFLiteSensitiveClassifierConfigBuilder builder_(_fbb);
1334   builder_.add_threshold(threshold);
1335   builder_.add_model_spec(model_spec);
1336   return builder_.Finish();
1337 }
1338 
1339 flatbuffers::Offset<TFLiteSensitiveClassifierConfig> CreateTFLiteSensitiveClassifierConfig(flatbuffers::FlatBufferBuilder &_fbb, const TFLiteSensitiveClassifierConfigT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1340 
1341 struct TriggeringPreconditionsT : public flatbuffers::NativeTable {
1342   typedef TriggeringPreconditions TableType;
1343   float min_smart_reply_triggering_score = 0.0f;
1344   float max_sensitive_topic_score = 1.0f;
1345   bool suppress_on_sensitive_topic = true;
1346   int32_t min_input_length = 0;
1347   int32_t max_input_length = -1;
1348   float min_locale_match_fraction = 0.75f;
1349   bool handle_missing_locale_as_supported = false;
1350   bool handle_unknown_locale_as_supported = false;
1351   bool suppress_on_low_confidence_input = true;
1352   std::unique_ptr<libtextclassifier3::RulesModelT> low_confidence_rules{};
1353   float min_reply_score_threshold = 0.0f;
1354   TriggeringPreconditionsT() = default;
1355   TriggeringPreconditionsT(const TriggeringPreconditionsT &o);
1356   TriggeringPreconditionsT(TriggeringPreconditionsT&&) FLATBUFFERS_NOEXCEPT = default;
1357   TriggeringPreconditionsT &operator=(TriggeringPreconditionsT o) FLATBUFFERS_NOEXCEPT;
1358 };
1359 
1360 struct TriggeringPreconditions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1361   typedef TriggeringPreconditionsT NativeTableType;
1362   typedef TriggeringPreconditionsBuilder Builder;
1363   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1364     VT_MIN_SMART_REPLY_TRIGGERING_SCORE = 4,
1365     VT_MAX_SENSITIVE_TOPIC_SCORE = 6,
1366     VT_SUPPRESS_ON_SENSITIVE_TOPIC = 8,
1367     VT_MIN_INPUT_LENGTH = 10,
1368     VT_MAX_INPUT_LENGTH = 12,
1369     VT_MIN_LOCALE_MATCH_FRACTION = 14,
1370     VT_HANDLE_MISSING_LOCALE_AS_SUPPORTED = 16,
1371     VT_HANDLE_UNKNOWN_LOCALE_AS_SUPPORTED = 18,
1372     VT_SUPPRESS_ON_LOW_CONFIDENCE_INPUT = 20,
1373     VT_LOW_CONFIDENCE_RULES = 22,
1374     VT_MIN_REPLY_SCORE_THRESHOLD = 30
1375   };
min_smart_reply_triggering_scoreFLATBUFFERS_FINAL_CLASS1376   float min_smart_reply_triggering_score() const {
1377     return GetField<float>(VT_MIN_SMART_REPLY_TRIGGERING_SCORE, 0.0f);
1378   }
max_sensitive_topic_scoreFLATBUFFERS_FINAL_CLASS1379   float max_sensitive_topic_score() const {
1380     return GetField<float>(VT_MAX_SENSITIVE_TOPIC_SCORE, 1.0f);
1381   }
suppress_on_sensitive_topicFLATBUFFERS_FINAL_CLASS1382   bool suppress_on_sensitive_topic() const {
1383     return GetField<uint8_t>(VT_SUPPRESS_ON_SENSITIVE_TOPIC, 1) != 0;
1384   }
min_input_lengthFLATBUFFERS_FINAL_CLASS1385   int32_t min_input_length() const {
1386     return GetField<int32_t>(VT_MIN_INPUT_LENGTH, 0);
1387   }
max_input_lengthFLATBUFFERS_FINAL_CLASS1388   int32_t max_input_length() const {
1389     return GetField<int32_t>(VT_MAX_INPUT_LENGTH, -1);
1390   }
min_locale_match_fractionFLATBUFFERS_FINAL_CLASS1391   float min_locale_match_fraction() const {
1392     return GetField<float>(VT_MIN_LOCALE_MATCH_FRACTION, 0.75f);
1393   }
handle_missing_locale_as_supportedFLATBUFFERS_FINAL_CLASS1394   bool handle_missing_locale_as_supported() const {
1395     return GetField<uint8_t>(VT_HANDLE_MISSING_LOCALE_AS_SUPPORTED, 0) != 0;
1396   }
handle_unknown_locale_as_supportedFLATBUFFERS_FINAL_CLASS1397   bool handle_unknown_locale_as_supported() const {
1398     return GetField<uint8_t>(VT_HANDLE_UNKNOWN_LOCALE_AS_SUPPORTED, 0) != 0;
1399   }
suppress_on_low_confidence_inputFLATBUFFERS_FINAL_CLASS1400   bool suppress_on_low_confidence_input() const {
1401     return GetField<uint8_t>(VT_SUPPRESS_ON_LOW_CONFIDENCE_INPUT, 1) != 0;
1402   }
low_confidence_rulesFLATBUFFERS_FINAL_CLASS1403   const libtextclassifier3::RulesModel *low_confidence_rules() const {
1404     return GetPointer<const libtextclassifier3::RulesModel *>(VT_LOW_CONFIDENCE_RULES);
1405   }
min_reply_score_thresholdFLATBUFFERS_FINAL_CLASS1406   float min_reply_score_threshold() const {
1407     return GetField<float>(VT_MIN_REPLY_SCORE_THRESHOLD, 0.0f);
1408   }
VerifyFLATBUFFERS_FINAL_CLASS1409   bool Verify(flatbuffers::Verifier &verifier) const {
1410     return VerifyTableStart(verifier) &&
1411            VerifyField<float>(verifier, VT_MIN_SMART_REPLY_TRIGGERING_SCORE, 4) &&
1412            VerifyField<float>(verifier, VT_MAX_SENSITIVE_TOPIC_SCORE, 4) &&
1413            VerifyField<uint8_t>(verifier, VT_SUPPRESS_ON_SENSITIVE_TOPIC, 1) &&
1414            VerifyField<int32_t>(verifier, VT_MIN_INPUT_LENGTH, 4) &&
1415            VerifyField<int32_t>(verifier, VT_MAX_INPUT_LENGTH, 4) &&
1416            VerifyField<float>(verifier, VT_MIN_LOCALE_MATCH_FRACTION, 4) &&
1417            VerifyField<uint8_t>(verifier, VT_HANDLE_MISSING_LOCALE_AS_SUPPORTED, 1) &&
1418            VerifyField<uint8_t>(verifier, VT_HANDLE_UNKNOWN_LOCALE_AS_SUPPORTED, 1) &&
1419            VerifyField<uint8_t>(verifier, VT_SUPPRESS_ON_LOW_CONFIDENCE_INPUT, 1) &&
1420            VerifyOffset(verifier, VT_LOW_CONFIDENCE_RULES) &&
1421            verifier.VerifyTable(low_confidence_rules()) &&
1422            VerifyField<float>(verifier, VT_MIN_REPLY_SCORE_THRESHOLD, 4) &&
1423            verifier.EndTable();
1424   }
1425   TriggeringPreconditionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1426   void UnPackTo(TriggeringPreconditionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1427   static flatbuffers::Offset<TriggeringPreconditions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TriggeringPreconditionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1428 };
1429 
1430 struct TriggeringPreconditionsBuilder {
1431   typedef TriggeringPreconditions Table;
1432   flatbuffers::FlatBufferBuilder &fbb_;
1433   flatbuffers::uoffset_t start_;
add_min_smart_reply_triggering_scoreTriggeringPreconditionsBuilder1434   void add_min_smart_reply_triggering_score(float min_smart_reply_triggering_score) {
1435     fbb_.AddElement<float>(TriggeringPreconditions::VT_MIN_SMART_REPLY_TRIGGERING_SCORE, min_smart_reply_triggering_score, 0.0f);
1436   }
add_max_sensitive_topic_scoreTriggeringPreconditionsBuilder1437   void add_max_sensitive_topic_score(float max_sensitive_topic_score) {
1438     fbb_.AddElement<float>(TriggeringPreconditions::VT_MAX_SENSITIVE_TOPIC_SCORE, max_sensitive_topic_score, 1.0f);
1439   }
add_suppress_on_sensitive_topicTriggeringPreconditionsBuilder1440   void add_suppress_on_sensitive_topic(bool suppress_on_sensitive_topic) {
1441     fbb_.AddElement<uint8_t>(TriggeringPreconditions::VT_SUPPRESS_ON_SENSITIVE_TOPIC, static_cast<uint8_t>(suppress_on_sensitive_topic), 1);
1442   }
add_min_input_lengthTriggeringPreconditionsBuilder1443   void add_min_input_length(int32_t min_input_length) {
1444     fbb_.AddElement<int32_t>(TriggeringPreconditions::VT_MIN_INPUT_LENGTH, min_input_length, 0);
1445   }
add_max_input_lengthTriggeringPreconditionsBuilder1446   void add_max_input_length(int32_t max_input_length) {
1447     fbb_.AddElement<int32_t>(TriggeringPreconditions::VT_MAX_INPUT_LENGTH, max_input_length, -1);
1448   }
add_min_locale_match_fractionTriggeringPreconditionsBuilder1449   void add_min_locale_match_fraction(float min_locale_match_fraction) {
1450     fbb_.AddElement<float>(TriggeringPreconditions::VT_MIN_LOCALE_MATCH_FRACTION, min_locale_match_fraction, 0.75f);
1451   }
add_handle_missing_locale_as_supportedTriggeringPreconditionsBuilder1452   void add_handle_missing_locale_as_supported(bool handle_missing_locale_as_supported) {
1453     fbb_.AddElement<uint8_t>(TriggeringPreconditions::VT_HANDLE_MISSING_LOCALE_AS_SUPPORTED, static_cast<uint8_t>(handle_missing_locale_as_supported), 0);
1454   }
add_handle_unknown_locale_as_supportedTriggeringPreconditionsBuilder1455   void add_handle_unknown_locale_as_supported(bool handle_unknown_locale_as_supported) {
1456     fbb_.AddElement<uint8_t>(TriggeringPreconditions::VT_HANDLE_UNKNOWN_LOCALE_AS_SUPPORTED, static_cast<uint8_t>(handle_unknown_locale_as_supported), 0);
1457   }
add_suppress_on_low_confidence_inputTriggeringPreconditionsBuilder1458   void add_suppress_on_low_confidence_input(bool suppress_on_low_confidence_input) {
1459     fbb_.AddElement<uint8_t>(TriggeringPreconditions::VT_SUPPRESS_ON_LOW_CONFIDENCE_INPUT, static_cast<uint8_t>(suppress_on_low_confidence_input), 1);
1460   }
add_low_confidence_rulesTriggeringPreconditionsBuilder1461   void add_low_confidence_rules(flatbuffers::Offset<libtextclassifier3::RulesModel> low_confidence_rules) {
1462     fbb_.AddOffset(TriggeringPreconditions::VT_LOW_CONFIDENCE_RULES, low_confidence_rules);
1463   }
add_min_reply_score_thresholdTriggeringPreconditionsBuilder1464   void add_min_reply_score_threshold(float min_reply_score_threshold) {
1465     fbb_.AddElement<float>(TriggeringPreconditions::VT_MIN_REPLY_SCORE_THRESHOLD, min_reply_score_threshold, 0.0f);
1466   }
TriggeringPreconditionsBuilderTriggeringPreconditionsBuilder1467   explicit TriggeringPreconditionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1468         : fbb_(_fbb) {
1469     start_ = fbb_.StartTable();
1470   }
FinishTriggeringPreconditionsBuilder1471   flatbuffers::Offset<TriggeringPreconditions> Finish() {
1472     const auto end = fbb_.EndTable(start_);
1473     auto o = flatbuffers::Offset<TriggeringPreconditions>(end);
1474     return o;
1475   }
1476 };
1477 
1478 inline flatbuffers::Offset<TriggeringPreconditions> CreateTriggeringPreconditions(
1479     flatbuffers::FlatBufferBuilder &_fbb,
1480     float min_smart_reply_triggering_score = 0.0f,
1481     float max_sensitive_topic_score = 1.0f,
1482     bool suppress_on_sensitive_topic = true,
1483     int32_t min_input_length = 0,
1484     int32_t max_input_length = -1,
1485     float min_locale_match_fraction = 0.75f,
1486     bool handle_missing_locale_as_supported = false,
1487     bool handle_unknown_locale_as_supported = false,
1488     bool suppress_on_low_confidence_input = true,
1489     flatbuffers::Offset<libtextclassifier3::RulesModel> low_confidence_rules = 0,
1490     float min_reply_score_threshold = 0.0f) {
1491   TriggeringPreconditionsBuilder builder_(_fbb);
1492   builder_.add_min_reply_score_threshold(min_reply_score_threshold);
1493   builder_.add_low_confidence_rules(low_confidence_rules);
1494   builder_.add_min_locale_match_fraction(min_locale_match_fraction);
1495   builder_.add_max_input_length(max_input_length);
1496   builder_.add_min_input_length(min_input_length);
1497   builder_.add_max_sensitive_topic_score(max_sensitive_topic_score);
1498   builder_.add_min_smart_reply_triggering_score(min_smart_reply_triggering_score);
1499   builder_.add_suppress_on_low_confidence_input(suppress_on_low_confidence_input);
1500   builder_.add_handle_unknown_locale_as_supported(handle_unknown_locale_as_supported);
1501   builder_.add_handle_missing_locale_as_supported(handle_missing_locale_as_supported);
1502   builder_.add_suppress_on_sensitive_topic(suppress_on_sensitive_topic);
1503   return builder_.Finish();
1504 }
1505 
1506 flatbuffers::Offset<TriggeringPreconditions> CreateTriggeringPreconditions(flatbuffers::FlatBufferBuilder &_fbb, const TriggeringPreconditionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1507 
1508 struct ActionConceptToSuggestionT : public flatbuffers::NativeTable {
1509   typedef ActionConceptToSuggestion TableType;
1510   std::string concept_name{};
1511   std::vector<std::string> candidates{};
1512 };
1513 
1514 struct ActionConceptToSuggestion FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1515   typedef ActionConceptToSuggestionT NativeTableType;
1516   typedef ActionConceptToSuggestionBuilder Builder;
1517   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1518     VT_CONCEPT_NAME = 4,
1519     VT_CANDIDATES = 6
1520   };
concept_nameFLATBUFFERS_FINAL_CLASS1521   const flatbuffers::String *concept_name() const {
1522     return GetPointer<const flatbuffers::String *>(VT_CONCEPT_NAME);
1523   }
candidatesFLATBUFFERS_FINAL_CLASS1524   const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *candidates() const {
1525     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_CANDIDATES);
1526   }
VerifyFLATBUFFERS_FINAL_CLASS1527   bool Verify(flatbuffers::Verifier &verifier) const {
1528     return VerifyTableStart(verifier) &&
1529            VerifyOffset(verifier, VT_CONCEPT_NAME) &&
1530            verifier.VerifyString(concept_name()) &&
1531            VerifyOffset(verifier, VT_CANDIDATES) &&
1532            verifier.VerifyVector(candidates()) &&
1533            verifier.VerifyVectorOfStrings(candidates()) &&
1534            verifier.EndTable();
1535   }
1536   ActionConceptToSuggestionT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1537   void UnPackTo(ActionConceptToSuggestionT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1538   static flatbuffers::Offset<ActionConceptToSuggestion> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionConceptToSuggestionT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1539 };
1540 
1541 struct ActionConceptToSuggestionBuilder {
1542   typedef ActionConceptToSuggestion Table;
1543   flatbuffers::FlatBufferBuilder &fbb_;
1544   flatbuffers::uoffset_t start_;
add_concept_nameActionConceptToSuggestionBuilder1545   void add_concept_name(flatbuffers::Offset<flatbuffers::String> concept_name) {
1546     fbb_.AddOffset(ActionConceptToSuggestion::VT_CONCEPT_NAME, concept_name);
1547   }
add_candidatesActionConceptToSuggestionBuilder1548   void add_candidates(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> candidates) {
1549     fbb_.AddOffset(ActionConceptToSuggestion::VT_CANDIDATES, candidates);
1550   }
ActionConceptToSuggestionBuilderActionConceptToSuggestionBuilder1551   explicit ActionConceptToSuggestionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1552         : fbb_(_fbb) {
1553     start_ = fbb_.StartTable();
1554   }
FinishActionConceptToSuggestionBuilder1555   flatbuffers::Offset<ActionConceptToSuggestion> Finish() {
1556     const auto end = fbb_.EndTable(start_);
1557     auto o = flatbuffers::Offset<ActionConceptToSuggestion>(end);
1558     return o;
1559   }
1560 };
1561 
1562 inline flatbuffers::Offset<ActionConceptToSuggestion> CreateActionConceptToSuggestion(
1563     flatbuffers::FlatBufferBuilder &_fbb,
1564     flatbuffers::Offset<flatbuffers::String> concept_name = 0,
1565     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> candidates = 0) {
1566   ActionConceptToSuggestionBuilder builder_(_fbb);
1567   builder_.add_candidates(candidates);
1568   builder_.add_concept_name(concept_name);
1569   return builder_.Finish();
1570 }
1571 
1572 inline flatbuffers::Offset<ActionConceptToSuggestion> CreateActionConceptToSuggestionDirect(
1573     flatbuffers::FlatBufferBuilder &_fbb,
1574     const char *concept_name = nullptr,
1575     const std::vector<flatbuffers::Offset<flatbuffers::String>> *candidates = nullptr) {
1576   auto concept_name__ = concept_name ? _fbb.CreateSharedString(concept_name) : 0;
1577   auto candidates__ = candidates ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*candidates) : 0;
1578   return libtextclassifier3::CreateActionConceptToSuggestion(
1579       _fbb,
1580       concept_name__,
1581       candidates__);
1582 }
1583 
1584 flatbuffers::Offset<ActionConceptToSuggestion> CreateActionConceptToSuggestion(flatbuffers::FlatBufferBuilder &_fbb, const ActionConceptToSuggestionT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1585 
1586 struct ActionSuggestionSpecT : public flatbuffers::NativeTable {
1587   typedef ActionSuggestionSpec TableType;
1588   std::string type{};
1589   std::string response_text{};
1590   float score = 0.0f;
1591   std::string serialized_entity_data{};
1592   float priority_score = 0.0f;
1593   std::unique_ptr<libtextclassifier3::ActionsEntityDataT> entity_data{};
1594   std::vector<std::string> response_text_blocklist{};
1595   std::vector<std::unique_ptr<libtextclassifier3::ActionConceptToSuggestionT>> concept_mappings{};
1596   ActionSuggestionSpecT() = default;
1597   ActionSuggestionSpecT(const ActionSuggestionSpecT &o);
1598   ActionSuggestionSpecT(ActionSuggestionSpecT&&) FLATBUFFERS_NOEXCEPT = default;
1599   ActionSuggestionSpecT &operator=(ActionSuggestionSpecT o) FLATBUFFERS_NOEXCEPT;
1600 };
1601 
1602 struct ActionSuggestionSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1603   typedef ActionSuggestionSpecT NativeTableType;
1604   typedef ActionSuggestionSpecBuilder Builder;
1605   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1606     VT_TYPE = 4,
1607     VT_RESPONSE_TEXT = 6,
1608     VT_SCORE = 8,
1609     VT_SERIALIZED_ENTITY_DATA = 10,
1610     VT_PRIORITY_SCORE = 12,
1611     VT_ENTITY_DATA = 14,
1612     VT_RESPONSE_TEXT_BLOCKLIST = 16,
1613     VT_CONCEPT_MAPPINGS = 18
1614   };
typeFLATBUFFERS_FINAL_CLASS1615   const flatbuffers::String *type() const {
1616     return GetPointer<const flatbuffers::String *>(VT_TYPE);
1617   }
response_textFLATBUFFERS_FINAL_CLASS1618   const flatbuffers::String *response_text() const {
1619     return GetPointer<const flatbuffers::String *>(VT_RESPONSE_TEXT);
1620   }
scoreFLATBUFFERS_FINAL_CLASS1621   float score() const {
1622     return GetField<float>(VT_SCORE, 0.0f);
1623   }
serialized_entity_dataFLATBUFFERS_FINAL_CLASS1624   const flatbuffers::String *serialized_entity_data() const {
1625     return GetPointer<const flatbuffers::String *>(VT_SERIALIZED_ENTITY_DATA);
1626   }
priority_scoreFLATBUFFERS_FINAL_CLASS1627   float priority_score() const {
1628     return GetField<float>(VT_PRIORITY_SCORE, 0.0f);
1629   }
entity_dataFLATBUFFERS_FINAL_CLASS1630   const libtextclassifier3::ActionsEntityData *entity_data() const {
1631     return GetPointer<const libtextclassifier3::ActionsEntityData *>(VT_ENTITY_DATA);
1632   }
response_text_blocklistFLATBUFFERS_FINAL_CLASS1633   const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *response_text_blocklist() const {
1634     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_RESPONSE_TEXT_BLOCKLIST);
1635   }
concept_mappingsFLATBUFFERS_FINAL_CLASS1636   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>> *concept_mappings() const {
1637     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>> *>(VT_CONCEPT_MAPPINGS);
1638   }
VerifyFLATBUFFERS_FINAL_CLASS1639   bool Verify(flatbuffers::Verifier &verifier) const {
1640     return VerifyTableStart(verifier) &&
1641            VerifyOffset(verifier, VT_TYPE) &&
1642            verifier.VerifyString(type()) &&
1643            VerifyOffset(verifier, VT_RESPONSE_TEXT) &&
1644            verifier.VerifyString(response_text()) &&
1645            VerifyField<float>(verifier, VT_SCORE, 4) &&
1646            VerifyOffset(verifier, VT_SERIALIZED_ENTITY_DATA) &&
1647            verifier.VerifyString(serialized_entity_data()) &&
1648            VerifyField<float>(verifier, VT_PRIORITY_SCORE, 4) &&
1649            VerifyOffset(verifier, VT_ENTITY_DATA) &&
1650            verifier.VerifyTable(entity_data()) &&
1651            VerifyOffset(verifier, VT_RESPONSE_TEXT_BLOCKLIST) &&
1652            verifier.VerifyVector(response_text_blocklist()) &&
1653            verifier.VerifyVectorOfStrings(response_text_blocklist()) &&
1654            VerifyOffset(verifier, VT_CONCEPT_MAPPINGS) &&
1655            verifier.VerifyVector(concept_mappings()) &&
1656            verifier.VerifyVectorOfTables(concept_mappings()) &&
1657            verifier.EndTable();
1658   }
1659   ActionSuggestionSpecT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1660   void UnPackTo(ActionSuggestionSpecT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1661   static flatbuffers::Offset<ActionSuggestionSpec> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionSuggestionSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1662 };
1663 
1664 struct ActionSuggestionSpecBuilder {
1665   typedef ActionSuggestionSpec Table;
1666   flatbuffers::FlatBufferBuilder &fbb_;
1667   flatbuffers::uoffset_t start_;
add_typeActionSuggestionSpecBuilder1668   void add_type(flatbuffers::Offset<flatbuffers::String> type) {
1669     fbb_.AddOffset(ActionSuggestionSpec::VT_TYPE, type);
1670   }
add_response_textActionSuggestionSpecBuilder1671   void add_response_text(flatbuffers::Offset<flatbuffers::String> response_text) {
1672     fbb_.AddOffset(ActionSuggestionSpec::VT_RESPONSE_TEXT, response_text);
1673   }
add_scoreActionSuggestionSpecBuilder1674   void add_score(float score) {
1675     fbb_.AddElement<float>(ActionSuggestionSpec::VT_SCORE, score, 0.0f);
1676   }
add_serialized_entity_dataActionSuggestionSpecBuilder1677   void add_serialized_entity_data(flatbuffers::Offset<flatbuffers::String> serialized_entity_data) {
1678     fbb_.AddOffset(ActionSuggestionSpec::VT_SERIALIZED_ENTITY_DATA, serialized_entity_data);
1679   }
add_priority_scoreActionSuggestionSpecBuilder1680   void add_priority_score(float priority_score) {
1681     fbb_.AddElement<float>(ActionSuggestionSpec::VT_PRIORITY_SCORE, priority_score, 0.0f);
1682   }
add_entity_dataActionSuggestionSpecBuilder1683   void add_entity_data(flatbuffers::Offset<libtextclassifier3::ActionsEntityData> entity_data) {
1684     fbb_.AddOffset(ActionSuggestionSpec::VT_ENTITY_DATA, entity_data);
1685   }
add_response_text_blocklistActionSuggestionSpecBuilder1686   void add_response_text_blocklist(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> response_text_blocklist) {
1687     fbb_.AddOffset(ActionSuggestionSpec::VT_RESPONSE_TEXT_BLOCKLIST, response_text_blocklist);
1688   }
add_concept_mappingsActionSuggestionSpecBuilder1689   void add_concept_mappings(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>>> concept_mappings) {
1690     fbb_.AddOffset(ActionSuggestionSpec::VT_CONCEPT_MAPPINGS, concept_mappings);
1691   }
ActionSuggestionSpecBuilderActionSuggestionSpecBuilder1692   explicit ActionSuggestionSpecBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1693         : fbb_(_fbb) {
1694     start_ = fbb_.StartTable();
1695   }
FinishActionSuggestionSpecBuilder1696   flatbuffers::Offset<ActionSuggestionSpec> Finish() {
1697     const auto end = fbb_.EndTable(start_);
1698     auto o = flatbuffers::Offset<ActionSuggestionSpec>(end);
1699     return o;
1700   }
1701 };
1702 
1703 inline flatbuffers::Offset<ActionSuggestionSpec> CreateActionSuggestionSpec(
1704     flatbuffers::FlatBufferBuilder &_fbb,
1705     flatbuffers::Offset<flatbuffers::String> type = 0,
1706     flatbuffers::Offset<flatbuffers::String> response_text = 0,
1707     float score = 0.0f,
1708     flatbuffers::Offset<flatbuffers::String> serialized_entity_data = 0,
1709     float priority_score = 0.0f,
1710     flatbuffers::Offset<libtextclassifier3::ActionsEntityData> entity_data = 0,
1711     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> response_text_blocklist = 0,
1712     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>>> concept_mappings = 0) {
1713   ActionSuggestionSpecBuilder builder_(_fbb);
1714   builder_.add_concept_mappings(concept_mappings);
1715   builder_.add_response_text_blocklist(response_text_blocklist);
1716   builder_.add_entity_data(entity_data);
1717   builder_.add_priority_score(priority_score);
1718   builder_.add_serialized_entity_data(serialized_entity_data);
1719   builder_.add_score(score);
1720   builder_.add_response_text(response_text);
1721   builder_.add_type(type);
1722   return builder_.Finish();
1723 }
1724 
1725 inline flatbuffers::Offset<ActionSuggestionSpec> CreateActionSuggestionSpecDirect(
1726     flatbuffers::FlatBufferBuilder &_fbb,
1727     const char *type = nullptr,
1728     const char *response_text = nullptr,
1729     float score = 0.0f,
1730     const char *serialized_entity_data = nullptr,
1731     float priority_score = 0.0f,
1732     flatbuffers::Offset<libtextclassifier3::ActionsEntityData> entity_data = 0,
1733     const std::vector<flatbuffers::Offset<flatbuffers::String>> *response_text_blocklist = nullptr,
1734     const std::vector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>> *concept_mappings = nullptr) {
1735   auto type__ = type ? _fbb.CreateSharedString(type) : 0;
1736   auto response_text__ = response_text ? _fbb.CreateSharedString(response_text) : 0;
1737   auto serialized_entity_data__ = serialized_entity_data ? _fbb.CreateSharedString(serialized_entity_data) : 0;
1738   auto response_text_blocklist__ = response_text_blocklist ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*response_text_blocklist) : 0;
1739   auto concept_mappings__ = concept_mappings ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>>(*concept_mappings) : 0;
1740   return libtextclassifier3::CreateActionSuggestionSpec(
1741       _fbb,
1742       type__,
1743       response_text__,
1744       score,
1745       serialized_entity_data__,
1746       priority_score,
1747       entity_data,
1748       response_text_blocklist__,
1749       concept_mappings__);
1750 }
1751 
1752 flatbuffers::Offset<ActionSuggestionSpec> CreateActionSuggestionSpec(flatbuffers::FlatBufferBuilder &_fbb, const ActionSuggestionSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1753 
1754 struct ActionTypeOptionsT : public flatbuffers::NativeTable {
1755   typedef ActionTypeOptions TableType;
1756   std::string name{};
1757   bool enabled = true;
1758   float min_triggering_score = 0.0f;
1759   std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT> action{};
1760   ActionTypeOptionsT() = default;
1761   ActionTypeOptionsT(const ActionTypeOptionsT &o);
1762   ActionTypeOptionsT(ActionTypeOptionsT&&) FLATBUFFERS_NOEXCEPT = default;
1763   ActionTypeOptionsT &operator=(ActionTypeOptionsT o) FLATBUFFERS_NOEXCEPT;
1764 };
1765 
1766 struct ActionTypeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1767   typedef ActionTypeOptionsT NativeTableType;
1768   typedef ActionTypeOptionsBuilder Builder;
1769   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1770     VT_NAME = 4,
1771     VT_ENABLED = 6,
1772     VT_MIN_TRIGGERING_SCORE = 8,
1773     VT_ACTION = 10
1774   };
nameFLATBUFFERS_FINAL_CLASS1775   const flatbuffers::String *name() const {
1776     return GetPointer<const flatbuffers::String *>(VT_NAME);
1777   }
enabledFLATBUFFERS_FINAL_CLASS1778   bool enabled() const {
1779     return GetField<uint8_t>(VT_ENABLED, 1) != 0;
1780   }
min_triggering_scoreFLATBUFFERS_FINAL_CLASS1781   float min_triggering_score() const {
1782     return GetField<float>(VT_MIN_TRIGGERING_SCORE, 0.0f);
1783   }
actionFLATBUFFERS_FINAL_CLASS1784   const libtextclassifier3::ActionSuggestionSpec *action() const {
1785     return GetPointer<const libtextclassifier3::ActionSuggestionSpec *>(VT_ACTION);
1786   }
VerifyFLATBUFFERS_FINAL_CLASS1787   bool Verify(flatbuffers::Verifier &verifier) const {
1788     return VerifyTableStart(verifier) &&
1789            VerifyOffset(verifier, VT_NAME) &&
1790            verifier.VerifyString(name()) &&
1791            VerifyField<uint8_t>(verifier, VT_ENABLED, 1) &&
1792            VerifyField<float>(verifier, VT_MIN_TRIGGERING_SCORE, 4) &&
1793            VerifyOffset(verifier, VT_ACTION) &&
1794            verifier.VerifyTable(action()) &&
1795            verifier.EndTable();
1796   }
1797   ActionTypeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1798   void UnPackTo(ActionTypeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1799   static flatbuffers::Offset<ActionTypeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionTypeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1800 };
1801 
1802 struct ActionTypeOptionsBuilder {
1803   typedef ActionTypeOptions Table;
1804   flatbuffers::FlatBufferBuilder &fbb_;
1805   flatbuffers::uoffset_t start_;
add_nameActionTypeOptionsBuilder1806   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
1807     fbb_.AddOffset(ActionTypeOptions::VT_NAME, name);
1808   }
add_enabledActionTypeOptionsBuilder1809   void add_enabled(bool enabled) {
1810     fbb_.AddElement<uint8_t>(ActionTypeOptions::VT_ENABLED, static_cast<uint8_t>(enabled), 1);
1811   }
add_min_triggering_scoreActionTypeOptionsBuilder1812   void add_min_triggering_score(float min_triggering_score) {
1813     fbb_.AddElement<float>(ActionTypeOptions::VT_MIN_TRIGGERING_SCORE, min_triggering_score, 0.0f);
1814   }
add_actionActionTypeOptionsBuilder1815   void add_action(flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action) {
1816     fbb_.AddOffset(ActionTypeOptions::VT_ACTION, action);
1817   }
ActionTypeOptionsBuilderActionTypeOptionsBuilder1818   explicit ActionTypeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1819         : fbb_(_fbb) {
1820     start_ = fbb_.StartTable();
1821   }
FinishActionTypeOptionsBuilder1822   flatbuffers::Offset<ActionTypeOptions> Finish() {
1823     const auto end = fbb_.EndTable(start_);
1824     auto o = flatbuffers::Offset<ActionTypeOptions>(end);
1825     return o;
1826   }
1827 };
1828 
1829 inline flatbuffers::Offset<ActionTypeOptions> CreateActionTypeOptions(
1830     flatbuffers::FlatBufferBuilder &_fbb,
1831     flatbuffers::Offset<flatbuffers::String> name = 0,
1832     bool enabled = true,
1833     float min_triggering_score = 0.0f,
1834     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action = 0) {
1835   ActionTypeOptionsBuilder builder_(_fbb);
1836   builder_.add_action(action);
1837   builder_.add_min_triggering_score(min_triggering_score);
1838   builder_.add_name(name);
1839   builder_.add_enabled(enabled);
1840   return builder_.Finish();
1841 }
1842 
1843 inline flatbuffers::Offset<ActionTypeOptions> CreateActionTypeOptionsDirect(
1844     flatbuffers::FlatBufferBuilder &_fbb,
1845     const char *name = nullptr,
1846     bool enabled = true,
1847     float min_triggering_score = 0.0f,
1848     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action = 0) {
1849   auto name__ = name ? _fbb.CreateSharedString(name) : 0;
1850   return libtextclassifier3::CreateActionTypeOptions(
1851       _fbb,
1852       name__,
1853       enabled,
1854       min_triggering_score,
1855       action);
1856 }
1857 
1858 flatbuffers::Offset<ActionTypeOptions> CreateActionTypeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ActionTypeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1859 
1860 namespace AnnotationActionsSpec_ {
1861 
1862 struct AnnotationMappingT : public flatbuffers::NativeTable {
1863   typedef AnnotationMapping TableType;
1864   std::string annotation_collection{};
1865   std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT> action{};
1866   bool use_annotation_score = true;
1867   float min_annotation_score = 0.0f;
1868   std::unique_ptr<libtextclassifier3::FlatbufferFieldPathT> entity_field{};
1869   std::unique_ptr<libtextclassifier3::NormalizationOptionsT> normalization_options{};
1870   AnnotationMappingT() = default;
1871   AnnotationMappingT(const AnnotationMappingT &o);
1872   AnnotationMappingT(AnnotationMappingT&&) FLATBUFFERS_NOEXCEPT = default;
1873   AnnotationMappingT &operator=(AnnotationMappingT o) FLATBUFFERS_NOEXCEPT;
1874 };
1875 
1876 struct AnnotationMapping FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1877   typedef AnnotationMappingT NativeTableType;
1878   typedef AnnotationMappingBuilder Builder;
1879   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1880     VT_ANNOTATION_COLLECTION = 4,
1881     VT_ACTION = 6,
1882     VT_USE_ANNOTATION_SCORE = 8,
1883     VT_MIN_ANNOTATION_SCORE = 10,
1884     VT_ENTITY_FIELD = 12,
1885     VT_NORMALIZATION_OPTIONS = 14
1886   };
annotation_collectionFLATBUFFERS_FINAL_CLASS1887   const flatbuffers::String *annotation_collection() const {
1888     return GetPointer<const flatbuffers::String *>(VT_ANNOTATION_COLLECTION);
1889   }
actionFLATBUFFERS_FINAL_CLASS1890   const libtextclassifier3::ActionSuggestionSpec *action() const {
1891     return GetPointer<const libtextclassifier3::ActionSuggestionSpec *>(VT_ACTION);
1892   }
use_annotation_scoreFLATBUFFERS_FINAL_CLASS1893   bool use_annotation_score() const {
1894     return GetField<uint8_t>(VT_USE_ANNOTATION_SCORE, 1) != 0;
1895   }
min_annotation_scoreFLATBUFFERS_FINAL_CLASS1896   float min_annotation_score() const {
1897     return GetField<float>(VT_MIN_ANNOTATION_SCORE, 0.0f);
1898   }
entity_fieldFLATBUFFERS_FINAL_CLASS1899   const libtextclassifier3::FlatbufferFieldPath *entity_field() const {
1900     return GetPointer<const libtextclassifier3::FlatbufferFieldPath *>(VT_ENTITY_FIELD);
1901   }
normalization_optionsFLATBUFFERS_FINAL_CLASS1902   const libtextclassifier3::NormalizationOptions *normalization_options() const {
1903     return GetPointer<const libtextclassifier3::NormalizationOptions *>(VT_NORMALIZATION_OPTIONS);
1904   }
VerifyFLATBUFFERS_FINAL_CLASS1905   bool Verify(flatbuffers::Verifier &verifier) const {
1906     return VerifyTableStart(verifier) &&
1907            VerifyOffset(verifier, VT_ANNOTATION_COLLECTION) &&
1908            verifier.VerifyString(annotation_collection()) &&
1909            VerifyOffset(verifier, VT_ACTION) &&
1910            verifier.VerifyTable(action()) &&
1911            VerifyField<uint8_t>(verifier, VT_USE_ANNOTATION_SCORE, 1) &&
1912            VerifyField<float>(verifier, VT_MIN_ANNOTATION_SCORE, 4) &&
1913            VerifyOffset(verifier, VT_ENTITY_FIELD) &&
1914            verifier.VerifyTable(entity_field()) &&
1915            VerifyOffset(verifier, VT_NORMALIZATION_OPTIONS) &&
1916            verifier.VerifyTable(normalization_options()) &&
1917            verifier.EndTable();
1918   }
1919   AnnotationMappingT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1920   void UnPackTo(AnnotationMappingT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1921   static flatbuffers::Offset<AnnotationMapping> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationMappingT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1922 };
1923 
1924 struct AnnotationMappingBuilder {
1925   typedef AnnotationMapping Table;
1926   flatbuffers::FlatBufferBuilder &fbb_;
1927   flatbuffers::uoffset_t start_;
add_annotation_collectionAnnotationMappingBuilder1928   void add_annotation_collection(flatbuffers::Offset<flatbuffers::String> annotation_collection) {
1929     fbb_.AddOffset(AnnotationMapping::VT_ANNOTATION_COLLECTION, annotation_collection);
1930   }
add_actionAnnotationMappingBuilder1931   void add_action(flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action) {
1932     fbb_.AddOffset(AnnotationMapping::VT_ACTION, action);
1933   }
add_use_annotation_scoreAnnotationMappingBuilder1934   void add_use_annotation_score(bool use_annotation_score) {
1935     fbb_.AddElement<uint8_t>(AnnotationMapping::VT_USE_ANNOTATION_SCORE, static_cast<uint8_t>(use_annotation_score), 1);
1936   }
add_min_annotation_scoreAnnotationMappingBuilder1937   void add_min_annotation_score(float min_annotation_score) {
1938     fbb_.AddElement<float>(AnnotationMapping::VT_MIN_ANNOTATION_SCORE, min_annotation_score, 0.0f);
1939   }
add_entity_fieldAnnotationMappingBuilder1940   void add_entity_field(flatbuffers::Offset<libtextclassifier3::FlatbufferFieldPath> entity_field) {
1941     fbb_.AddOffset(AnnotationMapping::VT_ENTITY_FIELD, entity_field);
1942   }
add_normalization_optionsAnnotationMappingBuilder1943   void add_normalization_options(flatbuffers::Offset<libtextclassifier3::NormalizationOptions> normalization_options) {
1944     fbb_.AddOffset(AnnotationMapping::VT_NORMALIZATION_OPTIONS, normalization_options);
1945   }
AnnotationMappingBuilderAnnotationMappingBuilder1946   explicit AnnotationMappingBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1947         : fbb_(_fbb) {
1948     start_ = fbb_.StartTable();
1949   }
FinishAnnotationMappingBuilder1950   flatbuffers::Offset<AnnotationMapping> Finish() {
1951     const auto end = fbb_.EndTable(start_);
1952     auto o = flatbuffers::Offset<AnnotationMapping>(end);
1953     return o;
1954   }
1955 };
1956 
1957 inline flatbuffers::Offset<AnnotationMapping> CreateAnnotationMapping(
1958     flatbuffers::FlatBufferBuilder &_fbb,
1959     flatbuffers::Offset<flatbuffers::String> annotation_collection = 0,
1960     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action = 0,
1961     bool use_annotation_score = true,
1962     float min_annotation_score = 0.0f,
1963     flatbuffers::Offset<libtextclassifier3::FlatbufferFieldPath> entity_field = 0,
1964     flatbuffers::Offset<libtextclassifier3::NormalizationOptions> normalization_options = 0) {
1965   AnnotationMappingBuilder builder_(_fbb);
1966   builder_.add_normalization_options(normalization_options);
1967   builder_.add_entity_field(entity_field);
1968   builder_.add_min_annotation_score(min_annotation_score);
1969   builder_.add_action(action);
1970   builder_.add_annotation_collection(annotation_collection);
1971   builder_.add_use_annotation_score(use_annotation_score);
1972   return builder_.Finish();
1973 }
1974 
1975 inline flatbuffers::Offset<AnnotationMapping> CreateAnnotationMappingDirect(
1976     flatbuffers::FlatBufferBuilder &_fbb,
1977     const char *annotation_collection = nullptr,
1978     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action = 0,
1979     bool use_annotation_score = true,
1980     float min_annotation_score = 0.0f,
1981     flatbuffers::Offset<libtextclassifier3::FlatbufferFieldPath> entity_field = 0,
1982     flatbuffers::Offset<libtextclassifier3::NormalizationOptions> normalization_options = 0) {
1983   auto annotation_collection__ = annotation_collection ? _fbb.CreateSharedString(annotation_collection) : 0;
1984   return libtextclassifier3::AnnotationActionsSpec_::CreateAnnotationMapping(
1985       _fbb,
1986       annotation_collection__,
1987       action,
1988       use_annotation_score,
1989       min_annotation_score,
1990       entity_field,
1991       normalization_options);
1992 }
1993 
1994 flatbuffers::Offset<AnnotationMapping> CreateAnnotationMapping(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationMappingT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1995 
1996 }  // namespace AnnotationActionsSpec_
1997 
1998 struct AnnotationActionsSpecT : public flatbuffers::NativeTable {
1999   typedef AnnotationActionsSpec TableType;
2000   std::vector<std::unique_ptr<libtextclassifier3::AnnotationActionsSpec_::AnnotationMappingT>> annotation_mapping{};
2001   bool deduplicate_annotations = true;
2002   libtextclassifier3::AnnotationUsecase annotation_usecase = libtextclassifier3::AnnotationUsecase_ANNOTATION_USECASE_SMART;
2003   int32_t max_history_from_any_person = 1;
2004   int32_t max_history_from_last_person = 1;
2005   bool include_local_user_messages = false;
2006   bool only_until_last_sent = true;
2007   bool is_serialized_entity_data_enabled = true;
2008   AnnotationActionsSpecT() = default;
2009   AnnotationActionsSpecT(const AnnotationActionsSpecT &o);
2010   AnnotationActionsSpecT(AnnotationActionsSpecT&&) FLATBUFFERS_NOEXCEPT = default;
2011   AnnotationActionsSpecT &operator=(AnnotationActionsSpecT o) FLATBUFFERS_NOEXCEPT;
2012 };
2013 
2014 struct AnnotationActionsSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2015   typedef AnnotationActionsSpecT NativeTableType;
2016   typedef AnnotationActionsSpecBuilder Builder;
2017   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2018     VT_ANNOTATION_MAPPING = 4,
2019     VT_DEDUPLICATE_ANNOTATIONS = 6,
2020     VT_ANNOTATION_USECASE = 8,
2021     VT_MAX_HISTORY_FROM_ANY_PERSON = 10,
2022     VT_MAX_HISTORY_FROM_LAST_PERSON = 12,
2023     VT_INCLUDE_LOCAL_USER_MESSAGES = 14,
2024     VT_ONLY_UNTIL_LAST_SENT = 16,
2025     VT_IS_SERIALIZED_ENTITY_DATA_ENABLED = 18
2026   };
annotation_mappingFLATBUFFERS_FINAL_CLASS2027   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>> *annotation_mapping() const {
2028     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>> *>(VT_ANNOTATION_MAPPING);
2029   }
deduplicate_annotationsFLATBUFFERS_FINAL_CLASS2030   bool deduplicate_annotations() const {
2031     return GetField<uint8_t>(VT_DEDUPLICATE_ANNOTATIONS, 1) != 0;
2032   }
annotation_usecaseFLATBUFFERS_FINAL_CLASS2033   libtextclassifier3::AnnotationUsecase annotation_usecase() const {
2034     return static_cast<libtextclassifier3::AnnotationUsecase>(GetField<int32_t>(VT_ANNOTATION_USECASE, 0));
2035   }
max_history_from_any_personFLATBUFFERS_FINAL_CLASS2036   int32_t max_history_from_any_person() const {
2037     return GetField<int32_t>(VT_MAX_HISTORY_FROM_ANY_PERSON, 1);
2038   }
max_history_from_last_personFLATBUFFERS_FINAL_CLASS2039   int32_t max_history_from_last_person() const {
2040     return GetField<int32_t>(VT_MAX_HISTORY_FROM_LAST_PERSON, 1);
2041   }
include_local_user_messagesFLATBUFFERS_FINAL_CLASS2042   bool include_local_user_messages() const {
2043     return GetField<uint8_t>(VT_INCLUDE_LOCAL_USER_MESSAGES, 0) != 0;
2044   }
only_until_last_sentFLATBUFFERS_FINAL_CLASS2045   bool only_until_last_sent() const {
2046     return GetField<uint8_t>(VT_ONLY_UNTIL_LAST_SENT, 1) != 0;
2047   }
is_serialized_entity_data_enabledFLATBUFFERS_FINAL_CLASS2048   bool is_serialized_entity_data_enabled() const {
2049     return GetField<uint8_t>(VT_IS_SERIALIZED_ENTITY_DATA_ENABLED, 1) != 0;
2050   }
VerifyFLATBUFFERS_FINAL_CLASS2051   bool Verify(flatbuffers::Verifier &verifier) const {
2052     return VerifyTableStart(verifier) &&
2053            VerifyOffset(verifier, VT_ANNOTATION_MAPPING) &&
2054            verifier.VerifyVector(annotation_mapping()) &&
2055            verifier.VerifyVectorOfTables(annotation_mapping()) &&
2056            VerifyField<uint8_t>(verifier, VT_DEDUPLICATE_ANNOTATIONS, 1) &&
2057            VerifyField<int32_t>(verifier, VT_ANNOTATION_USECASE, 4) &&
2058            VerifyField<int32_t>(verifier, VT_MAX_HISTORY_FROM_ANY_PERSON, 4) &&
2059            VerifyField<int32_t>(verifier, VT_MAX_HISTORY_FROM_LAST_PERSON, 4) &&
2060            VerifyField<uint8_t>(verifier, VT_INCLUDE_LOCAL_USER_MESSAGES, 1) &&
2061            VerifyField<uint8_t>(verifier, VT_ONLY_UNTIL_LAST_SENT, 1) &&
2062            VerifyField<uint8_t>(verifier, VT_IS_SERIALIZED_ENTITY_DATA_ENABLED, 1) &&
2063            verifier.EndTable();
2064   }
2065   AnnotationActionsSpecT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2066   void UnPackTo(AnnotationActionsSpecT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2067   static flatbuffers::Offset<AnnotationActionsSpec> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationActionsSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2068 };
2069 
2070 struct AnnotationActionsSpecBuilder {
2071   typedef AnnotationActionsSpec Table;
2072   flatbuffers::FlatBufferBuilder &fbb_;
2073   flatbuffers::uoffset_t start_;
add_annotation_mappingAnnotationActionsSpecBuilder2074   void add_annotation_mapping(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>>> annotation_mapping) {
2075     fbb_.AddOffset(AnnotationActionsSpec::VT_ANNOTATION_MAPPING, annotation_mapping);
2076   }
add_deduplicate_annotationsAnnotationActionsSpecBuilder2077   void add_deduplicate_annotations(bool deduplicate_annotations) {
2078     fbb_.AddElement<uint8_t>(AnnotationActionsSpec::VT_DEDUPLICATE_ANNOTATIONS, static_cast<uint8_t>(deduplicate_annotations), 1);
2079   }
add_annotation_usecaseAnnotationActionsSpecBuilder2080   void add_annotation_usecase(libtextclassifier3::AnnotationUsecase annotation_usecase) {
2081     fbb_.AddElement<int32_t>(AnnotationActionsSpec::VT_ANNOTATION_USECASE, static_cast<int32_t>(annotation_usecase), 0);
2082   }
add_max_history_from_any_personAnnotationActionsSpecBuilder2083   void add_max_history_from_any_person(int32_t max_history_from_any_person) {
2084     fbb_.AddElement<int32_t>(AnnotationActionsSpec::VT_MAX_HISTORY_FROM_ANY_PERSON, max_history_from_any_person, 1);
2085   }
add_max_history_from_last_personAnnotationActionsSpecBuilder2086   void add_max_history_from_last_person(int32_t max_history_from_last_person) {
2087     fbb_.AddElement<int32_t>(AnnotationActionsSpec::VT_MAX_HISTORY_FROM_LAST_PERSON, max_history_from_last_person, 1);
2088   }
add_include_local_user_messagesAnnotationActionsSpecBuilder2089   void add_include_local_user_messages(bool include_local_user_messages) {
2090     fbb_.AddElement<uint8_t>(AnnotationActionsSpec::VT_INCLUDE_LOCAL_USER_MESSAGES, static_cast<uint8_t>(include_local_user_messages), 0);
2091   }
add_only_until_last_sentAnnotationActionsSpecBuilder2092   void add_only_until_last_sent(bool only_until_last_sent) {
2093     fbb_.AddElement<uint8_t>(AnnotationActionsSpec::VT_ONLY_UNTIL_LAST_SENT, static_cast<uint8_t>(only_until_last_sent), 1);
2094   }
add_is_serialized_entity_data_enabledAnnotationActionsSpecBuilder2095   void add_is_serialized_entity_data_enabled(bool is_serialized_entity_data_enabled) {
2096     fbb_.AddElement<uint8_t>(AnnotationActionsSpec::VT_IS_SERIALIZED_ENTITY_DATA_ENABLED, static_cast<uint8_t>(is_serialized_entity_data_enabled), 1);
2097   }
AnnotationActionsSpecBuilderAnnotationActionsSpecBuilder2098   explicit AnnotationActionsSpecBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2099         : fbb_(_fbb) {
2100     start_ = fbb_.StartTable();
2101   }
FinishAnnotationActionsSpecBuilder2102   flatbuffers::Offset<AnnotationActionsSpec> Finish() {
2103     const auto end = fbb_.EndTable(start_);
2104     auto o = flatbuffers::Offset<AnnotationActionsSpec>(end);
2105     return o;
2106   }
2107 };
2108 
2109 inline flatbuffers::Offset<AnnotationActionsSpec> CreateAnnotationActionsSpec(
2110     flatbuffers::FlatBufferBuilder &_fbb,
2111     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>>> annotation_mapping = 0,
2112     bool deduplicate_annotations = true,
2113     libtextclassifier3::AnnotationUsecase annotation_usecase = libtextclassifier3::AnnotationUsecase_ANNOTATION_USECASE_SMART,
2114     int32_t max_history_from_any_person = 1,
2115     int32_t max_history_from_last_person = 1,
2116     bool include_local_user_messages = false,
2117     bool only_until_last_sent = true,
2118     bool is_serialized_entity_data_enabled = true) {
2119   AnnotationActionsSpecBuilder builder_(_fbb);
2120   builder_.add_max_history_from_last_person(max_history_from_last_person);
2121   builder_.add_max_history_from_any_person(max_history_from_any_person);
2122   builder_.add_annotation_usecase(annotation_usecase);
2123   builder_.add_annotation_mapping(annotation_mapping);
2124   builder_.add_is_serialized_entity_data_enabled(is_serialized_entity_data_enabled);
2125   builder_.add_only_until_last_sent(only_until_last_sent);
2126   builder_.add_include_local_user_messages(include_local_user_messages);
2127   builder_.add_deduplicate_annotations(deduplicate_annotations);
2128   return builder_.Finish();
2129 }
2130 
2131 inline flatbuffers::Offset<AnnotationActionsSpec> CreateAnnotationActionsSpecDirect(
2132     flatbuffers::FlatBufferBuilder &_fbb,
2133     const std::vector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>> *annotation_mapping = nullptr,
2134     bool deduplicate_annotations = true,
2135     libtextclassifier3::AnnotationUsecase annotation_usecase = libtextclassifier3::AnnotationUsecase_ANNOTATION_USECASE_SMART,
2136     int32_t max_history_from_any_person = 1,
2137     int32_t max_history_from_last_person = 1,
2138     bool include_local_user_messages = false,
2139     bool only_until_last_sent = true,
2140     bool is_serialized_entity_data_enabled = true) {
2141   auto annotation_mapping__ = annotation_mapping ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>>(*annotation_mapping) : 0;
2142   return libtextclassifier3::CreateAnnotationActionsSpec(
2143       _fbb,
2144       annotation_mapping__,
2145       deduplicate_annotations,
2146       annotation_usecase,
2147       max_history_from_any_person,
2148       max_history_from_last_person,
2149       include_local_user_messages,
2150       only_until_last_sent,
2151       is_serialized_entity_data_enabled);
2152 }
2153 
2154 flatbuffers::Offset<AnnotationActionsSpec> CreateAnnotationActionsSpec(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationActionsSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2155 
2156 struct RankingOptionsT : public flatbuffers::NativeTable {
2157   typedef RankingOptions TableType;
2158   bool deduplicate_suggestions = true;
2159   bool deduplicate_suggestions_by_span = true;
2160   std::string lua_ranking_script{};
2161   std::unique_ptr<libtextclassifier3::CompressedBufferT> compressed_lua_ranking_script{};
2162   bool suppress_smart_replies_with_actions = false;
2163   bool group_by_annotations = true;
2164   libtextclassifier3::RankingOptionsSortType sort_type = libtextclassifier3::RankingOptionsSortType_SORT_TYPE_SCORE;
2165   RankingOptionsT() = default;
2166   RankingOptionsT(const RankingOptionsT &o);
2167   RankingOptionsT(RankingOptionsT&&) FLATBUFFERS_NOEXCEPT = default;
2168   RankingOptionsT &operator=(RankingOptionsT o) FLATBUFFERS_NOEXCEPT;
2169 };
2170 
2171 struct RankingOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2172   typedef RankingOptionsT NativeTableType;
2173   typedef RankingOptionsBuilder Builder;
2174   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2175     VT_DEDUPLICATE_SUGGESTIONS = 4,
2176     VT_DEDUPLICATE_SUGGESTIONS_BY_SPAN = 6,
2177     VT_LUA_RANKING_SCRIPT = 8,
2178     VT_COMPRESSED_LUA_RANKING_SCRIPT = 10,
2179     VT_SUPPRESS_SMART_REPLIES_WITH_ACTIONS = 12,
2180     VT_GROUP_BY_ANNOTATIONS = 14,
2181     VT_SORT_TYPE = 16
2182   };
deduplicate_suggestionsFLATBUFFERS_FINAL_CLASS2183   bool deduplicate_suggestions() const {
2184     return GetField<uint8_t>(VT_DEDUPLICATE_SUGGESTIONS, 1) != 0;
2185   }
deduplicate_suggestions_by_spanFLATBUFFERS_FINAL_CLASS2186   bool deduplicate_suggestions_by_span() const {
2187     return GetField<uint8_t>(VT_DEDUPLICATE_SUGGESTIONS_BY_SPAN, 1) != 0;
2188   }
lua_ranking_scriptFLATBUFFERS_FINAL_CLASS2189   const flatbuffers::String *lua_ranking_script() const {
2190     return GetPointer<const flatbuffers::String *>(VT_LUA_RANKING_SCRIPT);
2191   }
compressed_lua_ranking_scriptFLATBUFFERS_FINAL_CLASS2192   const libtextclassifier3::CompressedBuffer *compressed_lua_ranking_script() const {
2193     return GetPointer<const libtextclassifier3::CompressedBuffer *>(VT_COMPRESSED_LUA_RANKING_SCRIPT);
2194   }
suppress_smart_replies_with_actionsFLATBUFFERS_FINAL_CLASS2195   bool suppress_smart_replies_with_actions() const {
2196     return GetField<uint8_t>(VT_SUPPRESS_SMART_REPLIES_WITH_ACTIONS, 0) != 0;
2197   }
group_by_annotationsFLATBUFFERS_FINAL_CLASS2198   bool group_by_annotations() const {
2199     return GetField<uint8_t>(VT_GROUP_BY_ANNOTATIONS, 1) != 0;
2200   }
sort_typeFLATBUFFERS_FINAL_CLASS2201   libtextclassifier3::RankingOptionsSortType sort_type() const {
2202     return static_cast<libtextclassifier3::RankingOptionsSortType>(GetField<int32_t>(VT_SORT_TYPE, 1));
2203   }
VerifyFLATBUFFERS_FINAL_CLASS2204   bool Verify(flatbuffers::Verifier &verifier) const {
2205     return VerifyTableStart(verifier) &&
2206            VerifyField<uint8_t>(verifier, VT_DEDUPLICATE_SUGGESTIONS, 1) &&
2207            VerifyField<uint8_t>(verifier, VT_DEDUPLICATE_SUGGESTIONS_BY_SPAN, 1) &&
2208            VerifyOffset(verifier, VT_LUA_RANKING_SCRIPT) &&
2209            verifier.VerifyString(lua_ranking_script()) &&
2210            VerifyOffset(verifier, VT_COMPRESSED_LUA_RANKING_SCRIPT) &&
2211            verifier.VerifyTable(compressed_lua_ranking_script()) &&
2212            VerifyField<uint8_t>(verifier, VT_SUPPRESS_SMART_REPLIES_WITH_ACTIONS, 1) &&
2213            VerifyField<uint8_t>(verifier, VT_GROUP_BY_ANNOTATIONS, 1) &&
2214            VerifyField<int32_t>(verifier, VT_SORT_TYPE, 4) &&
2215            verifier.EndTable();
2216   }
2217   RankingOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2218   void UnPackTo(RankingOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2219   static flatbuffers::Offset<RankingOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RankingOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2220 };
2221 
2222 struct RankingOptionsBuilder {
2223   typedef RankingOptions Table;
2224   flatbuffers::FlatBufferBuilder &fbb_;
2225   flatbuffers::uoffset_t start_;
add_deduplicate_suggestionsRankingOptionsBuilder2226   void add_deduplicate_suggestions(bool deduplicate_suggestions) {
2227     fbb_.AddElement<uint8_t>(RankingOptions::VT_DEDUPLICATE_SUGGESTIONS, static_cast<uint8_t>(deduplicate_suggestions), 1);
2228   }
add_deduplicate_suggestions_by_spanRankingOptionsBuilder2229   void add_deduplicate_suggestions_by_span(bool deduplicate_suggestions_by_span) {
2230     fbb_.AddElement<uint8_t>(RankingOptions::VT_DEDUPLICATE_SUGGESTIONS_BY_SPAN, static_cast<uint8_t>(deduplicate_suggestions_by_span), 1);
2231   }
add_lua_ranking_scriptRankingOptionsBuilder2232   void add_lua_ranking_script(flatbuffers::Offset<flatbuffers::String> lua_ranking_script) {
2233     fbb_.AddOffset(RankingOptions::VT_LUA_RANKING_SCRIPT, lua_ranking_script);
2234   }
add_compressed_lua_ranking_scriptRankingOptionsBuilder2235   void add_compressed_lua_ranking_script(flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_lua_ranking_script) {
2236     fbb_.AddOffset(RankingOptions::VT_COMPRESSED_LUA_RANKING_SCRIPT, compressed_lua_ranking_script);
2237   }
add_suppress_smart_replies_with_actionsRankingOptionsBuilder2238   void add_suppress_smart_replies_with_actions(bool suppress_smart_replies_with_actions) {
2239     fbb_.AddElement<uint8_t>(RankingOptions::VT_SUPPRESS_SMART_REPLIES_WITH_ACTIONS, static_cast<uint8_t>(suppress_smart_replies_with_actions), 0);
2240   }
add_group_by_annotationsRankingOptionsBuilder2241   void add_group_by_annotations(bool group_by_annotations) {
2242     fbb_.AddElement<uint8_t>(RankingOptions::VT_GROUP_BY_ANNOTATIONS, static_cast<uint8_t>(group_by_annotations), 1);
2243   }
add_sort_typeRankingOptionsBuilder2244   void add_sort_type(libtextclassifier3::RankingOptionsSortType sort_type) {
2245     fbb_.AddElement<int32_t>(RankingOptions::VT_SORT_TYPE, static_cast<int32_t>(sort_type), 1);
2246   }
RankingOptionsBuilderRankingOptionsBuilder2247   explicit RankingOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2248         : fbb_(_fbb) {
2249     start_ = fbb_.StartTable();
2250   }
FinishRankingOptionsBuilder2251   flatbuffers::Offset<RankingOptions> Finish() {
2252     const auto end = fbb_.EndTable(start_);
2253     auto o = flatbuffers::Offset<RankingOptions>(end);
2254     return o;
2255   }
2256 };
2257 
2258 inline flatbuffers::Offset<RankingOptions> CreateRankingOptions(
2259     flatbuffers::FlatBufferBuilder &_fbb,
2260     bool deduplicate_suggestions = true,
2261     bool deduplicate_suggestions_by_span = true,
2262     flatbuffers::Offset<flatbuffers::String> lua_ranking_script = 0,
2263     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_lua_ranking_script = 0,
2264     bool suppress_smart_replies_with_actions = false,
2265     bool group_by_annotations = true,
2266     libtextclassifier3::RankingOptionsSortType sort_type = libtextclassifier3::RankingOptionsSortType_SORT_TYPE_SCORE) {
2267   RankingOptionsBuilder builder_(_fbb);
2268   builder_.add_sort_type(sort_type);
2269   builder_.add_compressed_lua_ranking_script(compressed_lua_ranking_script);
2270   builder_.add_lua_ranking_script(lua_ranking_script);
2271   builder_.add_group_by_annotations(group_by_annotations);
2272   builder_.add_suppress_smart_replies_with_actions(suppress_smart_replies_with_actions);
2273   builder_.add_deduplicate_suggestions_by_span(deduplicate_suggestions_by_span);
2274   builder_.add_deduplicate_suggestions(deduplicate_suggestions);
2275   return builder_.Finish();
2276 }
2277 
2278 inline flatbuffers::Offset<RankingOptions> CreateRankingOptionsDirect(
2279     flatbuffers::FlatBufferBuilder &_fbb,
2280     bool deduplicate_suggestions = true,
2281     bool deduplicate_suggestions_by_span = true,
2282     const char *lua_ranking_script = nullptr,
2283     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_lua_ranking_script = 0,
2284     bool suppress_smart_replies_with_actions = false,
2285     bool group_by_annotations = true,
2286     libtextclassifier3::RankingOptionsSortType sort_type = libtextclassifier3::RankingOptionsSortType_SORT_TYPE_SCORE) {
2287   auto lua_ranking_script__ = lua_ranking_script ? _fbb.CreateSharedString(lua_ranking_script) : 0;
2288   return libtextclassifier3::CreateRankingOptions(
2289       _fbb,
2290       deduplicate_suggestions,
2291       deduplicate_suggestions_by_span,
2292       lua_ranking_script__,
2293       compressed_lua_ranking_script,
2294       suppress_smart_replies_with_actions,
2295       group_by_annotations,
2296       sort_type);
2297 }
2298 
2299 flatbuffers::Offset<RankingOptions> CreateRankingOptions(flatbuffers::FlatBufferBuilder &_fbb, const RankingOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2300 
2301 namespace RulesModel_ {
2302 namespace RuleActionSpec_ {
2303 
2304 struct RuleCapturingGroupT : public flatbuffers::NativeTable {
2305   typedef RuleCapturingGroup TableType;
2306   int32_t group_id = 0;
2307   std::unique_ptr<libtextclassifier3::FlatbufferFieldPathT> entity_field{};
2308   std::string annotation_type{};
2309   std::string annotation_name{};
2310   std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT> text_reply{};
2311   std::unique_ptr<libtextclassifier3::NormalizationOptionsT> normalization_options{};
2312   bool use_annotation_match = false;
2313   std::unique_ptr<libtextclassifier3::ActionsEntityDataT> entity_data{};
2314   RuleCapturingGroupT() = default;
2315   RuleCapturingGroupT(const RuleCapturingGroupT &o);
2316   RuleCapturingGroupT(RuleCapturingGroupT&&) FLATBUFFERS_NOEXCEPT = default;
2317   RuleCapturingGroupT &operator=(RuleCapturingGroupT o) FLATBUFFERS_NOEXCEPT;
2318 };
2319 
2320 struct RuleCapturingGroup FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2321   typedef RuleCapturingGroupT NativeTableType;
2322   typedef RuleCapturingGroupBuilder Builder;
2323   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2324     VT_GROUP_ID = 4,
2325     VT_ENTITY_FIELD = 6,
2326     VT_ANNOTATION_TYPE = 8,
2327     VT_ANNOTATION_NAME = 10,
2328     VT_TEXT_REPLY = 12,
2329     VT_NORMALIZATION_OPTIONS = 14,
2330     VT_USE_ANNOTATION_MATCH = 16,
2331     VT_ENTITY_DATA = 18
2332   };
group_idFLATBUFFERS_FINAL_CLASS2333   int32_t group_id() const {
2334     return GetField<int32_t>(VT_GROUP_ID, 0);
2335   }
entity_fieldFLATBUFFERS_FINAL_CLASS2336   const libtextclassifier3::FlatbufferFieldPath *entity_field() const {
2337     return GetPointer<const libtextclassifier3::FlatbufferFieldPath *>(VT_ENTITY_FIELD);
2338   }
annotation_typeFLATBUFFERS_FINAL_CLASS2339   const flatbuffers::String *annotation_type() const {
2340     return GetPointer<const flatbuffers::String *>(VT_ANNOTATION_TYPE);
2341   }
annotation_nameFLATBUFFERS_FINAL_CLASS2342   const flatbuffers::String *annotation_name() const {
2343     return GetPointer<const flatbuffers::String *>(VT_ANNOTATION_NAME);
2344   }
text_replyFLATBUFFERS_FINAL_CLASS2345   const libtextclassifier3::ActionSuggestionSpec *text_reply() const {
2346     return GetPointer<const libtextclassifier3::ActionSuggestionSpec *>(VT_TEXT_REPLY);
2347   }
normalization_optionsFLATBUFFERS_FINAL_CLASS2348   const libtextclassifier3::NormalizationOptions *normalization_options() const {
2349     return GetPointer<const libtextclassifier3::NormalizationOptions *>(VT_NORMALIZATION_OPTIONS);
2350   }
use_annotation_matchFLATBUFFERS_FINAL_CLASS2351   bool use_annotation_match() const {
2352     return GetField<uint8_t>(VT_USE_ANNOTATION_MATCH, 0) != 0;
2353   }
entity_dataFLATBUFFERS_FINAL_CLASS2354   const libtextclassifier3::ActionsEntityData *entity_data() const {
2355     return GetPointer<const libtextclassifier3::ActionsEntityData *>(VT_ENTITY_DATA);
2356   }
VerifyFLATBUFFERS_FINAL_CLASS2357   bool Verify(flatbuffers::Verifier &verifier) const {
2358     return VerifyTableStart(verifier) &&
2359            VerifyField<int32_t>(verifier, VT_GROUP_ID, 4) &&
2360            VerifyOffset(verifier, VT_ENTITY_FIELD) &&
2361            verifier.VerifyTable(entity_field()) &&
2362            VerifyOffset(verifier, VT_ANNOTATION_TYPE) &&
2363            verifier.VerifyString(annotation_type()) &&
2364            VerifyOffset(verifier, VT_ANNOTATION_NAME) &&
2365            verifier.VerifyString(annotation_name()) &&
2366            VerifyOffset(verifier, VT_TEXT_REPLY) &&
2367            verifier.VerifyTable(text_reply()) &&
2368            VerifyOffset(verifier, VT_NORMALIZATION_OPTIONS) &&
2369            verifier.VerifyTable(normalization_options()) &&
2370            VerifyField<uint8_t>(verifier, VT_USE_ANNOTATION_MATCH, 1) &&
2371            VerifyOffset(verifier, VT_ENTITY_DATA) &&
2372            verifier.VerifyTable(entity_data()) &&
2373            verifier.EndTable();
2374   }
2375   RuleCapturingGroupT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2376   void UnPackTo(RuleCapturingGroupT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2377   static flatbuffers::Offset<RuleCapturingGroup> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RuleCapturingGroupT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2378 };
2379 
2380 struct RuleCapturingGroupBuilder {
2381   typedef RuleCapturingGroup Table;
2382   flatbuffers::FlatBufferBuilder &fbb_;
2383   flatbuffers::uoffset_t start_;
add_group_idRuleCapturingGroupBuilder2384   void add_group_id(int32_t group_id) {
2385     fbb_.AddElement<int32_t>(RuleCapturingGroup::VT_GROUP_ID, group_id, 0);
2386   }
add_entity_fieldRuleCapturingGroupBuilder2387   void add_entity_field(flatbuffers::Offset<libtextclassifier3::FlatbufferFieldPath> entity_field) {
2388     fbb_.AddOffset(RuleCapturingGroup::VT_ENTITY_FIELD, entity_field);
2389   }
add_annotation_typeRuleCapturingGroupBuilder2390   void add_annotation_type(flatbuffers::Offset<flatbuffers::String> annotation_type) {
2391     fbb_.AddOffset(RuleCapturingGroup::VT_ANNOTATION_TYPE, annotation_type);
2392   }
add_annotation_nameRuleCapturingGroupBuilder2393   void add_annotation_name(flatbuffers::Offset<flatbuffers::String> annotation_name) {
2394     fbb_.AddOffset(RuleCapturingGroup::VT_ANNOTATION_NAME, annotation_name);
2395   }
add_text_replyRuleCapturingGroupBuilder2396   void add_text_reply(flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> text_reply) {
2397     fbb_.AddOffset(RuleCapturingGroup::VT_TEXT_REPLY, text_reply);
2398   }
add_normalization_optionsRuleCapturingGroupBuilder2399   void add_normalization_options(flatbuffers::Offset<libtextclassifier3::NormalizationOptions> normalization_options) {
2400     fbb_.AddOffset(RuleCapturingGroup::VT_NORMALIZATION_OPTIONS, normalization_options);
2401   }
add_use_annotation_matchRuleCapturingGroupBuilder2402   void add_use_annotation_match(bool use_annotation_match) {
2403     fbb_.AddElement<uint8_t>(RuleCapturingGroup::VT_USE_ANNOTATION_MATCH, static_cast<uint8_t>(use_annotation_match), 0);
2404   }
add_entity_dataRuleCapturingGroupBuilder2405   void add_entity_data(flatbuffers::Offset<libtextclassifier3::ActionsEntityData> entity_data) {
2406     fbb_.AddOffset(RuleCapturingGroup::VT_ENTITY_DATA, entity_data);
2407   }
RuleCapturingGroupBuilderRuleCapturingGroupBuilder2408   explicit RuleCapturingGroupBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2409         : fbb_(_fbb) {
2410     start_ = fbb_.StartTable();
2411   }
FinishRuleCapturingGroupBuilder2412   flatbuffers::Offset<RuleCapturingGroup> Finish() {
2413     const auto end = fbb_.EndTable(start_);
2414     auto o = flatbuffers::Offset<RuleCapturingGroup>(end);
2415     return o;
2416   }
2417 };
2418 
2419 inline flatbuffers::Offset<RuleCapturingGroup> CreateRuleCapturingGroup(
2420     flatbuffers::FlatBufferBuilder &_fbb,
2421     int32_t group_id = 0,
2422     flatbuffers::Offset<libtextclassifier3::FlatbufferFieldPath> entity_field = 0,
2423     flatbuffers::Offset<flatbuffers::String> annotation_type = 0,
2424     flatbuffers::Offset<flatbuffers::String> annotation_name = 0,
2425     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> text_reply = 0,
2426     flatbuffers::Offset<libtextclassifier3::NormalizationOptions> normalization_options = 0,
2427     bool use_annotation_match = false,
2428     flatbuffers::Offset<libtextclassifier3::ActionsEntityData> entity_data = 0) {
2429   RuleCapturingGroupBuilder builder_(_fbb);
2430   builder_.add_entity_data(entity_data);
2431   builder_.add_normalization_options(normalization_options);
2432   builder_.add_text_reply(text_reply);
2433   builder_.add_annotation_name(annotation_name);
2434   builder_.add_annotation_type(annotation_type);
2435   builder_.add_entity_field(entity_field);
2436   builder_.add_group_id(group_id);
2437   builder_.add_use_annotation_match(use_annotation_match);
2438   return builder_.Finish();
2439 }
2440 
2441 inline flatbuffers::Offset<RuleCapturingGroup> CreateRuleCapturingGroupDirect(
2442     flatbuffers::FlatBufferBuilder &_fbb,
2443     int32_t group_id = 0,
2444     flatbuffers::Offset<libtextclassifier3::FlatbufferFieldPath> entity_field = 0,
2445     const char *annotation_type = nullptr,
2446     const char *annotation_name = nullptr,
2447     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> text_reply = 0,
2448     flatbuffers::Offset<libtextclassifier3::NormalizationOptions> normalization_options = 0,
2449     bool use_annotation_match = false,
2450     flatbuffers::Offset<libtextclassifier3::ActionsEntityData> entity_data = 0) {
2451   auto annotation_type__ = annotation_type ? _fbb.CreateSharedString(annotation_type) : 0;
2452   auto annotation_name__ = annotation_name ? _fbb.CreateSharedString(annotation_name) : 0;
2453   return libtextclassifier3::RulesModel_::RuleActionSpec_::CreateRuleCapturingGroup(
2454       _fbb,
2455       group_id,
2456       entity_field,
2457       annotation_type__,
2458       annotation_name__,
2459       text_reply,
2460       normalization_options,
2461       use_annotation_match,
2462       entity_data);
2463 }
2464 
2465 flatbuffers::Offset<RuleCapturingGroup> CreateRuleCapturingGroup(flatbuffers::FlatBufferBuilder &_fbb, const RuleCapturingGroupT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2466 
2467 }  // namespace RuleActionSpec_
2468 
2469 struct RuleActionSpecT : public flatbuffers::NativeTable {
2470   typedef RuleActionSpec TableType;
2471   std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT> action{};
2472   std::vector<std::unique_ptr<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroupT>> capturing_group{};
2473   RuleActionSpecT() = default;
2474   RuleActionSpecT(const RuleActionSpecT &o);
2475   RuleActionSpecT(RuleActionSpecT&&) FLATBUFFERS_NOEXCEPT = default;
2476   RuleActionSpecT &operator=(RuleActionSpecT o) FLATBUFFERS_NOEXCEPT;
2477 };
2478 
2479 struct RuleActionSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2480   typedef RuleActionSpecT NativeTableType;
2481   typedef RuleActionSpecBuilder Builder;
2482   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2483     VT_ACTION = 4,
2484     VT_CAPTURING_GROUP = 6
2485   };
actionFLATBUFFERS_FINAL_CLASS2486   const libtextclassifier3::ActionSuggestionSpec *action() const {
2487     return GetPointer<const libtextclassifier3::ActionSuggestionSpec *>(VT_ACTION);
2488   }
capturing_groupFLATBUFFERS_FINAL_CLASS2489   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>> *capturing_group() const {
2490     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>> *>(VT_CAPTURING_GROUP);
2491   }
VerifyFLATBUFFERS_FINAL_CLASS2492   bool Verify(flatbuffers::Verifier &verifier) const {
2493     return VerifyTableStart(verifier) &&
2494            VerifyOffset(verifier, VT_ACTION) &&
2495            verifier.VerifyTable(action()) &&
2496            VerifyOffset(verifier, VT_CAPTURING_GROUP) &&
2497            verifier.VerifyVector(capturing_group()) &&
2498            verifier.VerifyVectorOfTables(capturing_group()) &&
2499            verifier.EndTable();
2500   }
2501   RuleActionSpecT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2502   void UnPackTo(RuleActionSpecT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2503   static flatbuffers::Offset<RuleActionSpec> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RuleActionSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2504 };
2505 
2506 struct RuleActionSpecBuilder {
2507   typedef RuleActionSpec Table;
2508   flatbuffers::FlatBufferBuilder &fbb_;
2509   flatbuffers::uoffset_t start_;
add_actionRuleActionSpecBuilder2510   void add_action(flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action) {
2511     fbb_.AddOffset(RuleActionSpec::VT_ACTION, action);
2512   }
add_capturing_groupRuleActionSpecBuilder2513   void add_capturing_group(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>>> capturing_group) {
2514     fbb_.AddOffset(RuleActionSpec::VT_CAPTURING_GROUP, capturing_group);
2515   }
RuleActionSpecBuilderRuleActionSpecBuilder2516   explicit RuleActionSpecBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2517         : fbb_(_fbb) {
2518     start_ = fbb_.StartTable();
2519   }
FinishRuleActionSpecBuilder2520   flatbuffers::Offset<RuleActionSpec> Finish() {
2521     const auto end = fbb_.EndTable(start_);
2522     auto o = flatbuffers::Offset<RuleActionSpec>(end);
2523     return o;
2524   }
2525 };
2526 
2527 inline flatbuffers::Offset<RuleActionSpec> CreateRuleActionSpec(
2528     flatbuffers::FlatBufferBuilder &_fbb,
2529     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action = 0,
2530     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>>> capturing_group = 0) {
2531   RuleActionSpecBuilder builder_(_fbb);
2532   builder_.add_capturing_group(capturing_group);
2533   builder_.add_action(action);
2534   return builder_.Finish();
2535 }
2536 
2537 inline flatbuffers::Offset<RuleActionSpec> CreateRuleActionSpecDirect(
2538     flatbuffers::FlatBufferBuilder &_fbb,
2539     flatbuffers::Offset<libtextclassifier3::ActionSuggestionSpec> action = 0,
2540     const std::vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>> *capturing_group = nullptr) {
2541   auto capturing_group__ = capturing_group ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>>(*capturing_group) : 0;
2542   return libtextclassifier3::RulesModel_::CreateRuleActionSpec(
2543       _fbb,
2544       action,
2545       capturing_group__);
2546 }
2547 
2548 flatbuffers::Offset<RuleActionSpec> CreateRuleActionSpec(flatbuffers::FlatBufferBuilder &_fbb, const RuleActionSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2549 
2550 struct RegexRuleT : public flatbuffers::NativeTable {
2551   typedef RegexRule TableType;
2552   std::string pattern{};
2553   std::unique_ptr<libtextclassifier3::CompressedBufferT> compressed_pattern{};
2554   std::vector<std::unique_ptr<libtextclassifier3::RulesModel_::RuleActionSpecT>> actions{};
2555   std::string output_pattern{};
2556   std::unique_ptr<libtextclassifier3::CompressedBufferT> compressed_output_pattern{};
2557   RegexRuleT() = default;
2558   RegexRuleT(const RegexRuleT &o);
2559   RegexRuleT(RegexRuleT&&) FLATBUFFERS_NOEXCEPT = default;
2560   RegexRuleT &operator=(RegexRuleT o) FLATBUFFERS_NOEXCEPT;
2561 };
2562 
2563 struct RegexRule FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2564   typedef RegexRuleT NativeTableType;
2565   typedef RegexRuleBuilder Builder;
2566   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2567     VT_PATTERN = 4,
2568     VT_COMPRESSED_PATTERN = 6,
2569     VT_ACTIONS = 8,
2570     VT_OUTPUT_PATTERN = 10,
2571     VT_COMPRESSED_OUTPUT_PATTERN = 12
2572   };
patternFLATBUFFERS_FINAL_CLASS2573   const flatbuffers::String *pattern() const {
2574     return GetPointer<const flatbuffers::String *>(VT_PATTERN);
2575   }
compressed_patternFLATBUFFERS_FINAL_CLASS2576   const libtextclassifier3::CompressedBuffer *compressed_pattern() const {
2577     return GetPointer<const libtextclassifier3::CompressedBuffer *>(VT_COMPRESSED_PATTERN);
2578   }
actionsFLATBUFFERS_FINAL_CLASS2579   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> *actions() const {
2580     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> *>(VT_ACTIONS);
2581   }
output_patternFLATBUFFERS_FINAL_CLASS2582   const flatbuffers::String *output_pattern() const {
2583     return GetPointer<const flatbuffers::String *>(VT_OUTPUT_PATTERN);
2584   }
compressed_output_patternFLATBUFFERS_FINAL_CLASS2585   const libtextclassifier3::CompressedBuffer *compressed_output_pattern() const {
2586     return GetPointer<const libtextclassifier3::CompressedBuffer *>(VT_COMPRESSED_OUTPUT_PATTERN);
2587   }
VerifyFLATBUFFERS_FINAL_CLASS2588   bool Verify(flatbuffers::Verifier &verifier) const {
2589     return VerifyTableStart(verifier) &&
2590            VerifyOffset(verifier, VT_PATTERN) &&
2591            verifier.VerifyString(pattern()) &&
2592            VerifyOffset(verifier, VT_COMPRESSED_PATTERN) &&
2593            verifier.VerifyTable(compressed_pattern()) &&
2594            VerifyOffset(verifier, VT_ACTIONS) &&
2595            verifier.VerifyVector(actions()) &&
2596            verifier.VerifyVectorOfTables(actions()) &&
2597            VerifyOffset(verifier, VT_OUTPUT_PATTERN) &&
2598            verifier.VerifyString(output_pattern()) &&
2599            VerifyOffset(verifier, VT_COMPRESSED_OUTPUT_PATTERN) &&
2600            verifier.VerifyTable(compressed_output_pattern()) &&
2601            verifier.EndTable();
2602   }
2603   RegexRuleT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2604   void UnPackTo(RegexRuleT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2605   static flatbuffers::Offset<RegexRule> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegexRuleT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2606 };
2607 
2608 struct RegexRuleBuilder {
2609   typedef RegexRule Table;
2610   flatbuffers::FlatBufferBuilder &fbb_;
2611   flatbuffers::uoffset_t start_;
add_patternRegexRuleBuilder2612   void add_pattern(flatbuffers::Offset<flatbuffers::String> pattern) {
2613     fbb_.AddOffset(RegexRule::VT_PATTERN, pattern);
2614   }
add_compressed_patternRegexRuleBuilder2615   void add_compressed_pattern(flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_pattern) {
2616     fbb_.AddOffset(RegexRule::VT_COMPRESSED_PATTERN, compressed_pattern);
2617   }
add_actionsRegexRuleBuilder2618   void add_actions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>>> actions) {
2619     fbb_.AddOffset(RegexRule::VT_ACTIONS, actions);
2620   }
add_output_patternRegexRuleBuilder2621   void add_output_pattern(flatbuffers::Offset<flatbuffers::String> output_pattern) {
2622     fbb_.AddOffset(RegexRule::VT_OUTPUT_PATTERN, output_pattern);
2623   }
add_compressed_output_patternRegexRuleBuilder2624   void add_compressed_output_pattern(flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_output_pattern) {
2625     fbb_.AddOffset(RegexRule::VT_COMPRESSED_OUTPUT_PATTERN, compressed_output_pattern);
2626   }
RegexRuleBuilderRegexRuleBuilder2627   explicit RegexRuleBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2628         : fbb_(_fbb) {
2629     start_ = fbb_.StartTable();
2630   }
FinishRegexRuleBuilder2631   flatbuffers::Offset<RegexRule> Finish() {
2632     const auto end = fbb_.EndTable(start_);
2633     auto o = flatbuffers::Offset<RegexRule>(end);
2634     return o;
2635   }
2636 };
2637 
2638 inline flatbuffers::Offset<RegexRule> CreateRegexRule(
2639     flatbuffers::FlatBufferBuilder &_fbb,
2640     flatbuffers::Offset<flatbuffers::String> pattern = 0,
2641     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_pattern = 0,
2642     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>>> actions = 0,
2643     flatbuffers::Offset<flatbuffers::String> output_pattern = 0,
2644     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_output_pattern = 0) {
2645   RegexRuleBuilder builder_(_fbb);
2646   builder_.add_compressed_output_pattern(compressed_output_pattern);
2647   builder_.add_output_pattern(output_pattern);
2648   builder_.add_actions(actions);
2649   builder_.add_compressed_pattern(compressed_pattern);
2650   builder_.add_pattern(pattern);
2651   return builder_.Finish();
2652 }
2653 
2654 inline flatbuffers::Offset<RegexRule> CreateRegexRuleDirect(
2655     flatbuffers::FlatBufferBuilder &_fbb,
2656     const char *pattern = nullptr,
2657     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_pattern = 0,
2658     const std::vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> *actions = nullptr,
2659     const char *output_pattern = nullptr,
2660     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_output_pattern = 0) {
2661   auto pattern__ = pattern ? _fbb.CreateSharedString(pattern) : 0;
2662   auto actions__ = actions ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>>(*actions) : 0;
2663   auto output_pattern__ = output_pattern ? _fbb.CreateSharedString(output_pattern) : 0;
2664   return libtextclassifier3::RulesModel_::CreateRegexRule(
2665       _fbb,
2666       pattern__,
2667       compressed_pattern,
2668       actions__,
2669       output_pattern__,
2670       compressed_output_pattern);
2671 }
2672 
2673 flatbuffers::Offset<RegexRule> CreateRegexRule(flatbuffers::FlatBufferBuilder &_fbb, const RegexRuleT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2674 
2675 namespace GrammarRules_ {
2676 
2677 struct RuleMatchT : public flatbuffers::NativeTable {
2678   typedef RuleMatch TableType;
2679   std::vector<uint32_t> action_id{};
2680 };
2681 
2682 struct RuleMatch FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2683   typedef RuleMatchT NativeTableType;
2684   typedef RuleMatchBuilder Builder;
2685   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2686     VT_ACTION_ID = 4
2687   };
action_idFLATBUFFERS_FINAL_CLASS2688   const flatbuffers::Vector<uint32_t> *action_id() const {
2689     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_ACTION_ID);
2690   }
VerifyFLATBUFFERS_FINAL_CLASS2691   bool Verify(flatbuffers::Verifier &verifier) const {
2692     return VerifyTableStart(verifier) &&
2693            VerifyOffset(verifier, VT_ACTION_ID) &&
2694            verifier.VerifyVector(action_id()) &&
2695            verifier.EndTable();
2696   }
2697   RuleMatchT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2698   void UnPackTo(RuleMatchT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2699   static flatbuffers::Offset<RuleMatch> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RuleMatchT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2700 };
2701 
2702 struct RuleMatchBuilder {
2703   typedef RuleMatch Table;
2704   flatbuffers::FlatBufferBuilder &fbb_;
2705   flatbuffers::uoffset_t start_;
add_action_idRuleMatchBuilder2706   void add_action_id(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> action_id) {
2707     fbb_.AddOffset(RuleMatch::VT_ACTION_ID, action_id);
2708   }
RuleMatchBuilderRuleMatchBuilder2709   explicit RuleMatchBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2710         : fbb_(_fbb) {
2711     start_ = fbb_.StartTable();
2712   }
FinishRuleMatchBuilder2713   flatbuffers::Offset<RuleMatch> Finish() {
2714     const auto end = fbb_.EndTable(start_);
2715     auto o = flatbuffers::Offset<RuleMatch>(end);
2716     return o;
2717   }
2718 };
2719 
2720 inline flatbuffers::Offset<RuleMatch> CreateRuleMatch(
2721     flatbuffers::FlatBufferBuilder &_fbb,
2722     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> action_id = 0) {
2723   RuleMatchBuilder builder_(_fbb);
2724   builder_.add_action_id(action_id);
2725   return builder_.Finish();
2726 }
2727 
2728 inline flatbuffers::Offset<RuleMatch> CreateRuleMatchDirect(
2729     flatbuffers::FlatBufferBuilder &_fbb,
2730     const std::vector<uint32_t> *action_id = nullptr) {
2731   auto action_id__ = action_id ? _fbb.CreateVector<uint32_t>(*action_id) : 0;
2732   return libtextclassifier3::RulesModel_::GrammarRules_::CreateRuleMatch(
2733       _fbb,
2734       action_id__);
2735 }
2736 
2737 flatbuffers::Offset<RuleMatch> CreateRuleMatch(flatbuffers::FlatBufferBuilder &_fbb, const RuleMatchT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2738 
2739 }  // namespace GrammarRules_
2740 
2741 struct GrammarRulesT : public flatbuffers::NativeTable {
2742   typedef GrammarRules TableType;
2743   std::unique_ptr<libtextclassifier3::ActionsTokenizerOptionsT> tokenizer_options{};
2744   std::unique_ptr<libtextclassifier3::grammar::RulesSetT> rules{};
2745   std::vector<std::unique_ptr<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatchT>> rule_match{};
2746   std::vector<std::unique_ptr<libtextclassifier3::RulesModel_::RuleActionSpecT>> actions{};
2747   GrammarRulesT() = default;
2748   GrammarRulesT(const GrammarRulesT &o);
2749   GrammarRulesT(GrammarRulesT&&) FLATBUFFERS_NOEXCEPT = default;
2750   GrammarRulesT &operator=(GrammarRulesT o) FLATBUFFERS_NOEXCEPT;
2751 };
2752 
2753 struct GrammarRules FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2754   typedef GrammarRulesT NativeTableType;
2755   typedef GrammarRulesBuilder Builder;
2756   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2757     VT_TOKENIZER_OPTIONS = 4,
2758     VT_RULES = 6,
2759     VT_RULE_MATCH = 8,
2760     VT_ACTIONS = 10
2761   };
tokenizer_optionsFLATBUFFERS_FINAL_CLASS2762   const libtextclassifier3::ActionsTokenizerOptions *tokenizer_options() const {
2763     return GetPointer<const libtextclassifier3::ActionsTokenizerOptions *>(VT_TOKENIZER_OPTIONS);
2764   }
rulesFLATBUFFERS_FINAL_CLASS2765   const libtextclassifier3::grammar::RulesSet *rules() const {
2766     return GetPointer<const libtextclassifier3::grammar::RulesSet *>(VT_RULES);
2767   }
rule_matchFLATBUFFERS_FINAL_CLASS2768   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>> *rule_match() const {
2769     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>> *>(VT_RULE_MATCH);
2770   }
actionsFLATBUFFERS_FINAL_CLASS2771   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> *actions() const {
2772     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> *>(VT_ACTIONS);
2773   }
VerifyFLATBUFFERS_FINAL_CLASS2774   bool Verify(flatbuffers::Verifier &verifier) const {
2775     return VerifyTableStart(verifier) &&
2776            VerifyOffset(verifier, VT_TOKENIZER_OPTIONS) &&
2777            verifier.VerifyTable(tokenizer_options()) &&
2778            VerifyOffset(verifier, VT_RULES) &&
2779            verifier.VerifyTable(rules()) &&
2780            VerifyOffset(verifier, VT_RULE_MATCH) &&
2781            verifier.VerifyVector(rule_match()) &&
2782            verifier.VerifyVectorOfTables(rule_match()) &&
2783            VerifyOffset(verifier, VT_ACTIONS) &&
2784            verifier.VerifyVector(actions()) &&
2785            verifier.VerifyVectorOfTables(actions()) &&
2786            verifier.EndTable();
2787   }
2788   GrammarRulesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2789   void UnPackTo(GrammarRulesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2790   static flatbuffers::Offset<GrammarRules> Pack(flatbuffers::FlatBufferBuilder &_fbb, const GrammarRulesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2791 };
2792 
2793 struct GrammarRulesBuilder {
2794   typedef GrammarRules Table;
2795   flatbuffers::FlatBufferBuilder &fbb_;
2796   flatbuffers::uoffset_t start_;
add_tokenizer_optionsGrammarRulesBuilder2797   void add_tokenizer_options(flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options) {
2798     fbb_.AddOffset(GrammarRules::VT_TOKENIZER_OPTIONS, tokenizer_options);
2799   }
add_rulesGrammarRulesBuilder2800   void add_rules(flatbuffers::Offset<libtextclassifier3::grammar::RulesSet> rules) {
2801     fbb_.AddOffset(GrammarRules::VT_RULES, rules);
2802   }
add_rule_matchGrammarRulesBuilder2803   void add_rule_match(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>>> rule_match) {
2804     fbb_.AddOffset(GrammarRules::VT_RULE_MATCH, rule_match);
2805   }
add_actionsGrammarRulesBuilder2806   void add_actions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>>> actions) {
2807     fbb_.AddOffset(GrammarRules::VT_ACTIONS, actions);
2808   }
GrammarRulesBuilderGrammarRulesBuilder2809   explicit GrammarRulesBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2810         : fbb_(_fbb) {
2811     start_ = fbb_.StartTable();
2812   }
FinishGrammarRulesBuilder2813   flatbuffers::Offset<GrammarRules> Finish() {
2814     const auto end = fbb_.EndTable(start_);
2815     auto o = flatbuffers::Offset<GrammarRules>(end);
2816     return o;
2817   }
2818 };
2819 
2820 inline flatbuffers::Offset<GrammarRules> CreateGrammarRules(
2821     flatbuffers::FlatBufferBuilder &_fbb,
2822     flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options = 0,
2823     flatbuffers::Offset<libtextclassifier3::grammar::RulesSet> rules = 0,
2824     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>>> rule_match = 0,
2825     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>>> actions = 0) {
2826   GrammarRulesBuilder builder_(_fbb);
2827   builder_.add_actions(actions);
2828   builder_.add_rule_match(rule_match);
2829   builder_.add_rules(rules);
2830   builder_.add_tokenizer_options(tokenizer_options);
2831   return builder_.Finish();
2832 }
2833 
2834 inline flatbuffers::Offset<GrammarRules> CreateGrammarRulesDirect(
2835     flatbuffers::FlatBufferBuilder &_fbb,
2836     flatbuffers::Offset<libtextclassifier3::ActionsTokenizerOptions> tokenizer_options = 0,
2837     flatbuffers::Offset<libtextclassifier3::grammar::RulesSet> rules = 0,
2838     const std::vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>> *rule_match = nullptr,
2839     const std::vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> *actions = nullptr) {
2840   auto rule_match__ = rule_match ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>>(*rule_match) : 0;
2841   auto actions__ = actions ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>>(*actions) : 0;
2842   return libtextclassifier3::RulesModel_::CreateGrammarRules(
2843       _fbb,
2844       tokenizer_options,
2845       rules,
2846       rule_match__,
2847       actions__);
2848 }
2849 
2850 flatbuffers::Offset<GrammarRules> CreateGrammarRules(flatbuffers::FlatBufferBuilder &_fbb, const GrammarRulesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2851 
2852 }  // namespace RulesModel_
2853 
2854 struct RulesModelT : public flatbuffers::NativeTable {
2855   typedef RulesModel TableType;
2856   std::vector<std::unique_ptr<libtextclassifier3::RulesModel_::RegexRuleT>> regex_rule{};
2857   bool lazy_regex_compilation = true;
2858   std::unique_ptr<libtextclassifier3::RulesModel_::GrammarRulesT> grammar_rules{};
2859   RulesModelT() = default;
2860   RulesModelT(const RulesModelT &o);
2861   RulesModelT(RulesModelT&&) FLATBUFFERS_NOEXCEPT = default;
2862   RulesModelT &operator=(RulesModelT o) FLATBUFFERS_NOEXCEPT;
2863 };
2864 
2865 struct RulesModel FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2866   typedef RulesModelT NativeTableType;
2867   typedef RulesModelBuilder Builder;
2868   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2869     VT_REGEX_RULE = 4,
2870     VT_LAZY_REGEX_COMPILATION = 6,
2871     VT_GRAMMAR_RULES = 8
2872   };
regex_ruleFLATBUFFERS_FINAL_CLASS2873   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>> *regex_rule() const {
2874     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>> *>(VT_REGEX_RULE);
2875   }
lazy_regex_compilationFLATBUFFERS_FINAL_CLASS2876   bool lazy_regex_compilation() const {
2877     return GetField<uint8_t>(VT_LAZY_REGEX_COMPILATION, 1) != 0;
2878   }
grammar_rulesFLATBUFFERS_FINAL_CLASS2879   const libtextclassifier3::RulesModel_::GrammarRules *grammar_rules() const {
2880     return GetPointer<const libtextclassifier3::RulesModel_::GrammarRules *>(VT_GRAMMAR_RULES);
2881   }
VerifyFLATBUFFERS_FINAL_CLASS2882   bool Verify(flatbuffers::Verifier &verifier) const {
2883     return VerifyTableStart(verifier) &&
2884            VerifyOffset(verifier, VT_REGEX_RULE) &&
2885            verifier.VerifyVector(regex_rule()) &&
2886            verifier.VerifyVectorOfTables(regex_rule()) &&
2887            VerifyField<uint8_t>(verifier, VT_LAZY_REGEX_COMPILATION, 1) &&
2888            VerifyOffset(verifier, VT_GRAMMAR_RULES) &&
2889            verifier.VerifyTable(grammar_rules()) &&
2890            verifier.EndTable();
2891   }
2892   RulesModelT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2893   void UnPackTo(RulesModelT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
2894   static flatbuffers::Offset<RulesModel> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RulesModelT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2895 };
2896 
2897 struct RulesModelBuilder {
2898   typedef RulesModel Table;
2899   flatbuffers::FlatBufferBuilder &fbb_;
2900   flatbuffers::uoffset_t start_;
add_regex_ruleRulesModelBuilder2901   void add_regex_rule(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>>> regex_rule) {
2902     fbb_.AddOffset(RulesModel::VT_REGEX_RULE, regex_rule);
2903   }
add_lazy_regex_compilationRulesModelBuilder2904   void add_lazy_regex_compilation(bool lazy_regex_compilation) {
2905     fbb_.AddElement<uint8_t>(RulesModel::VT_LAZY_REGEX_COMPILATION, static_cast<uint8_t>(lazy_regex_compilation), 1);
2906   }
add_grammar_rulesRulesModelBuilder2907   void add_grammar_rules(flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules> grammar_rules) {
2908     fbb_.AddOffset(RulesModel::VT_GRAMMAR_RULES, grammar_rules);
2909   }
RulesModelBuilderRulesModelBuilder2910   explicit RulesModelBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2911         : fbb_(_fbb) {
2912     start_ = fbb_.StartTable();
2913   }
FinishRulesModelBuilder2914   flatbuffers::Offset<RulesModel> Finish() {
2915     const auto end = fbb_.EndTable(start_);
2916     auto o = flatbuffers::Offset<RulesModel>(end);
2917     return o;
2918   }
2919 };
2920 
2921 inline flatbuffers::Offset<RulesModel> CreateRulesModel(
2922     flatbuffers::FlatBufferBuilder &_fbb,
2923     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>>> regex_rule = 0,
2924     bool lazy_regex_compilation = true,
2925     flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules> grammar_rules = 0) {
2926   RulesModelBuilder builder_(_fbb);
2927   builder_.add_grammar_rules(grammar_rules);
2928   builder_.add_regex_rule(regex_rule);
2929   builder_.add_lazy_regex_compilation(lazy_regex_compilation);
2930   return builder_.Finish();
2931 }
2932 
2933 inline flatbuffers::Offset<RulesModel> CreateRulesModelDirect(
2934     flatbuffers::FlatBufferBuilder &_fbb,
2935     const std::vector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>> *regex_rule = nullptr,
2936     bool lazy_regex_compilation = true,
2937     flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules> grammar_rules = 0) {
2938   auto regex_rule__ = regex_rule ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>>(*regex_rule) : 0;
2939   return libtextclassifier3::CreateRulesModel(
2940       _fbb,
2941       regex_rule__,
2942       lazy_regex_compilation,
2943       grammar_rules);
2944 }
2945 
2946 flatbuffers::Offset<RulesModel> CreateRulesModel(flatbuffers::FlatBufferBuilder &_fbb, const RulesModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
2947 
2948 struct ActionsModelT : public flatbuffers::NativeTable {
2949   typedef ActionsModel TableType;
2950   std::string locales{};
2951   int32_t version = 0;
2952   std::string name{};
2953   std::unique_ptr<libtextclassifier3::TensorflowLiteModelSpecT> tflite_model_spec{};
2954   std::string smart_reply_action_type{};
2955   std::vector<std::unique_ptr<libtextclassifier3::ActionTypeOptionsT>> action_type{};
2956   std::unique_ptr<libtextclassifier3::TriggeringPreconditionsT> preconditions{};
2957   int32_t num_smart_replies = 3;
2958   int32_t max_conversation_history_length = 1;
2959   std::unique_ptr<libtextclassifier3::AnnotationActionsSpecT> annotation_actions_spec{};
2960   std::unique_ptr<libtextclassifier3::RulesModelT> rules{};
2961   std::unique_ptr<libtextclassifier3::IntentFactoryModelT> android_intent_options{};
2962   std::unique_ptr<libtextclassifier3::ResourcePoolT> resources{};
2963   std::vector<uint8_t> actions_entity_data_schema{};
2964   std::unique_ptr<libtextclassifier3::RankingOptionsT> ranking_options{};
2965   std::string lua_actions_script{};
2966   std::unique_ptr<libtextclassifier3::CompressedBufferT> compressed_lua_actions_script{};
2967   std::unique_ptr<libtextclassifier3::RulesModelT> low_confidence_rules{};
2968   std::unique_ptr<libtextclassifier3::NGramLinearRegressionModelT> low_confidence_ngram_model{};
2969   std::unique_ptr<libtextclassifier3::ActionsTokenFeatureProcessorOptionsT> feature_processor_options{};
2970   std::unique_ptr<libtextclassifier3::TFLiteSensitiveClassifierConfigT> low_confidence_tflite_model{};
2971   ActionsModelT() = default;
2972   ActionsModelT(const ActionsModelT &o);
2973   ActionsModelT(ActionsModelT&&) FLATBUFFERS_NOEXCEPT = default;
2974   ActionsModelT &operator=(ActionsModelT o) FLATBUFFERS_NOEXCEPT;
2975 };
2976 
2977 struct ActionsModel FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2978   typedef ActionsModelT NativeTableType;
2979   typedef ActionsModelBuilder Builder;
2980   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2981     VT_LOCALES = 4,
2982     VT_VERSION = 6,
2983     VT_NAME = 8,
2984     VT_TFLITE_MODEL_SPEC = 10,
2985     VT_SMART_REPLY_ACTION_TYPE = 12,
2986     VT_ACTION_TYPE = 14,
2987     VT_PRECONDITIONS = 16,
2988     VT_NUM_SMART_REPLIES = 18,
2989     VT_MAX_CONVERSATION_HISTORY_LENGTH = 20,
2990     VT_ANNOTATION_ACTIONS_SPEC = 22,
2991     VT_RULES = 24,
2992     VT_ANDROID_INTENT_OPTIONS = 26,
2993     VT_RESOURCES = 28,
2994     VT_ACTIONS_ENTITY_DATA_SCHEMA = 30,
2995     VT_RANKING_OPTIONS = 32,
2996     VT_LUA_ACTIONS_SCRIPT = 34,
2997     VT_COMPRESSED_LUA_ACTIONS_SCRIPT = 36,
2998     VT_LOW_CONFIDENCE_RULES = 38,
2999     VT_LOW_CONFIDENCE_NGRAM_MODEL = 40,
3000     VT_FEATURE_PROCESSOR_OPTIONS = 42,
3001     VT_LOW_CONFIDENCE_TFLITE_MODEL = 44
3002   };
localesFLATBUFFERS_FINAL_CLASS3003   const flatbuffers::String *locales() const {
3004     return GetPointer<const flatbuffers::String *>(VT_LOCALES);
3005   }
versionFLATBUFFERS_FINAL_CLASS3006   int32_t version() const {
3007     return GetField<int32_t>(VT_VERSION, 0);
3008   }
nameFLATBUFFERS_FINAL_CLASS3009   const flatbuffers::String *name() const {
3010     return GetPointer<const flatbuffers::String *>(VT_NAME);
3011   }
tflite_model_specFLATBUFFERS_FINAL_CLASS3012   const libtextclassifier3::TensorflowLiteModelSpec *tflite_model_spec() const {
3013     return GetPointer<const libtextclassifier3::TensorflowLiteModelSpec *>(VT_TFLITE_MODEL_SPEC);
3014   }
smart_reply_action_typeFLATBUFFERS_FINAL_CLASS3015   const flatbuffers::String *smart_reply_action_type() const {
3016     return GetPointer<const flatbuffers::String *>(VT_SMART_REPLY_ACTION_TYPE);
3017   }
action_typeFLATBUFFERS_FINAL_CLASS3018   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>> *action_type() const {
3019     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>> *>(VT_ACTION_TYPE);
3020   }
preconditionsFLATBUFFERS_FINAL_CLASS3021   const libtextclassifier3::TriggeringPreconditions *preconditions() const {
3022     return GetPointer<const libtextclassifier3::TriggeringPreconditions *>(VT_PRECONDITIONS);
3023   }
num_smart_repliesFLATBUFFERS_FINAL_CLASS3024   int32_t num_smart_replies() const {
3025     return GetField<int32_t>(VT_NUM_SMART_REPLIES, 3);
3026   }
max_conversation_history_lengthFLATBUFFERS_FINAL_CLASS3027   int32_t max_conversation_history_length() const {
3028     return GetField<int32_t>(VT_MAX_CONVERSATION_HISTORY_LENGTH, 1);
3029   }
annotation_actions_specFLATBUFFERS_FINAL_CLASS3030   const libtextclassifier3::AnnotationActionsSpec *annotation_actions_spec() const {
3031     return GetPointer<const libtextclassifier3::AnnotationActionsSpec *>(VT_ANNOTATION_ACTIONS_SPEC);
3032   }
rulesFLATBUFFERS_FINAL_CLASS3033   const libtextclassifier3::RulesModel *rules() const {
3034     return GetPointer<const libtextclassifier3::RulesModel *>(VT_RULES);
3035   }
android_intent_optionsFLATBUFFERS_FINAL_CLASS3036   const libtextclassifier3::IntentFactoryModel *android_intent_options() const {
3037     return GetPointer<const libtextclassifier3::IntentFactoryModel *>(VT_ANDROID_INTENT_OPTIONS);
3038   }
resourcesFLATBUFFERS_FINAL_CLASS3039   const libtextclassifier3::ResourcePool *resources() const {
3040     return GetPointer<const libtextclassifier3::ResourcePool *>(VT_RESOURCES);
3041   }
actions_entity_data_schemaFLATBUFFERS_FINAL_CLASS3042   const flatbuffers::Vector<uint8_t> *actions_entity_data_schema() const {
3043     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_ACTIONS_ENTITY_DATA_SCHEMA);
3044   }
ranking_optionsFLATBUFFERS_FINAL_CLASS3045   const libtextclassifier3::RankingOptions *ranking_options() const {
3046     return GetPointer<const libtextclassifier3::RankingOptions *>(VT_RANKING_OPTIONS);
3047   }
lua_actions_scriptFLATBUFFERS_FINAL_CLASS3048   const flatbuffers::String *lua_actions_script() const {
3049     return GetPointer<const flatbuffers::String *>(VT_LUA_ACTIONS_SCRIPT);
3050   }
compressed_lua_actions_scriptFLATBUFFERS_FINAL_CLASS3051   const libtextclassifier3::CompressedBuffer *compressed_lua_actions_script() const {
3052     return GetPointer<const libtextclassifier3::CompressedBuffer *>(VT_COMPRESSED_LUA_ACTIONS_SCRIPT);
3053   }
low_confidence_rulesFLATBUFFERS_FINAL_CLASS3054   const libtextclassifier3::RulesModel *low_confidence_rules() const {
3055     return GetPointer<const libtextclassifier3::RulesModel *>(VT_LOW_CONFIDENCE_RULES);
3056   }
low_confidence_ngram_modelFLATBUFFERS_FINAL_CLASS3057   const libtextclassifier3::NGramLinearRegressionModel *low_confidence_ngram_model() const {
3058     return GetPointer<const libtextclassifier3::NGramLinearRegressionModel *>(VT_LOW_CONFIDENCE_NGRAM_MODEL);
3059   }
feature_processor_optionsFLATBUFFERS_FINAL_CLASS3060   const libtextclassifier3::ActionsTokenFeatureProcessorOptions *feature_processor_options() const {
3061     return GetPointer<const libtextclassifier3::ActionsTokenFeatureProcessorOptions *>(VT_FEATURE_PROCESSOR_OPTIONS);
3062   }
low_confidence_tflite_modelFLATBUFFERS_FINAL_CLASS3063   const libtextclassifier3::TFLiteSensitiveClassifierConfig *low_confidence_tflite_model() const {
3064     return GetPointer<const libtextclassifier3::TFLiteSensitiveClassifierConfig *>(VT_LOW_CONFIDENCE_TFLITE_MODEL);
3065   }
VerifyFLATBUFFERS_FINAL_CLASS3066   bool Verify(flatbuffers::Verifier &verifier) const {
3067     return VerifyTableStart(verifier) &&
3068            VerifyOffset(verifier, VT_LOCALES) &&
3069            verifier.VerifyString(locales()) &&
3070            VerifyField<int32_t>(verifier, VT_VERSION, 4) &&
3071            VerifyOffset(verifier, VT_NAME) &&
3072            verifier.VerifyString(name()) &&
3073            VerifyOffset(verifier, VT_TFLITE_MODEL_SPEC) &&
3074            verifier.VerifyTable(tflite_model_spec()) &&
3075            VerifyOffset(verifier, VT_SMART_REPLY_ACTION_TYPE) &&
3076            verifier.VerifyString(smart_reply_action_type()) &&
3077            VerifyOffset(verifier, VT_ACTION_TYPE) &&
3078            verifier.VerifyVector(action_type()) &&
3079            verifier.VerifyVectorOfTables(action_type()) &&
3080            VerifyOffset(verifier, VT_PRECONDITIONS) &&
3081            verifier.VerifyTable(preconditions()) &&
3082            VerifyField<int32_t>(verifier, VT_NUM_SMART_REPLIES, 4) &&
3083            VerifyField<int32_t>(verifier, VT_MAX_CONVERSATION_HISTORY_LENGTH, 4) &&
3084            VerifyOffset(verifier, VT_ANNOTATION_ACTIONS_SPEC) &&
3085            verifier.VerifyTable(annotation_actions_spec()) &&
3086            VerifyOffset(verifier, VT_RULES) &&
3087            verifier.VerifyTable(rules()) &&
3088            VerifyOffset(verifier, VT_ANDROID_INTENT_OPTIONS) &&
3089            verifier.VerifyTable(android_intent_options()) &&
3090            VerifyOffset(verifier, VT_RESOURCES) &&
3091            verifier.VerifyTable(resources()) &&
3092            VerifyOffset(verifier, VT_ACTIONS_ENTITY_DATA_SCHEMA) &&
3093            verifier.VerifyVector(actions_entity_data_schema()) &&
3094            VerifyOffset(verifier, VT_RANKING_OPTIONS) &&
3095            verifier.VerifyTable(ranking_options()) &&
3096            VerifyOffset(verifier, VT_LUA_ACTIONS_SCRIPT) &&
3097            verifier.VerifyString(lua_actions_script()) &&
3098            VerifyOffset(verifier, VT_COMPRESSED_LUA_ACTIONS_SCRIPT) &&
3099            verifier.VerifyTable(compressed_lua_actions_script()) &&
3100            VerifyOffset(verifier, VT_LOW_CONFIDENCE_RULES) &&
3101            verifier.VerifyTable(low_confidence_rules()) &&
3102            VerifyOffset(verifier, VT_LOW_CONFIDENCE_NGRAM_MODEL) &&
3103            verifier.VerifyTable(low_confidence_ngram_model()) &&
3104            VerifyOffset(verifier, VT_FEATURE_PROCESSOR_OPTIONS) &&
3105            verifier.VerifyTable(feature_processor_options()) &&
3106            VerifyOffset(verifier, VT_LOW_CONFIDENCE_TFLITE_MODEL) &&
3107            verifier.VerifyTable(low_confidence_tflite_model()) &&
3108            verifier.EndTable();
3109   }
3110   ActionsModelT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3111   void UnPackTo(ActionsModelT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
3112   static flatbuffers::Offset<ActionsModel> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionsModelT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3113 };
3114 
3115 struct ActionsModelBuilder {
3116   typedef ActionsModel Table;
3117   flatbuffers::FlatBufferBuilder &fbb_;
3118   flatbuffers::uoffset_t start_;
add_localesActionsModelBuilder3119   void add_locales(flatbuffers::Offset<flatbuffers::String> locales) {
3120     fbb_.AddOffset(ActionsModel::VT_LOCALES, locales);
3121   }
add_versionActionsModelBuilder3122   void add_version(int32_t version) {
3123     fbb_.AddElement<int32_t>(ActionsModel::VT_VERSION, version, 0);
3124   }
add_nameActionsModelBuilder3125   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
3126     fbb_.AddOffset(ActionsModel::VT_NAME, name);
3127   }
add_tflite_model_specActionsModelBuilder3128   void add_tflite_model_spec(flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec> tflite_model_spec) {
3129     fbb_.AddOffset(ActionsModel::VT_TFLITE_MODEL_SPEC, tflite_model_spec);
3130   }
add_smart_reply_action_typeActionsModelBuilder3131   void add_smart_reply_action_type(flatbuffers::Offset<flatbuffers::String> smart_reply_action_type) {
3132     fbb_.AddOffset(ActionsModel::VT_SMART_REPLY_ACTION_TYPE, smart_reply_action_type);
3133   }
add_action_typeActionsModelBuilder3134   void add_action_type(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>>> action_type) {
3135     fbb_.AddOffset(ActionsModel::VT_ACTION_TYPE, action_type);
3136   }
add_preconditionsActionsModelBuilder3137   void add_preconditions(flatbuffers::Offset<libtextclassifier3::TriggeringPreconditions> preconditions) {
3138     fbb_.AddOffset(ActionsModel::VT_PRECONDITIONS, preconditions);
3139   }
add_num_smart_repliesActionsModelBuilder3140   void add_num_smart_replies(int32_t num_smart_replies) {
3141     fbb_.AddElement<int32_t>(ActionsModel::VT_NUM_SMART_REPLIES, num_smart_replies, 3);
3142   }
add_max_conversation_history_lengthActionsModelBuilder3143   void add_max_conversation_history_length(int32_t max_conversation_history_length) {
3144     fbb_.AddElement<int32_t>(ActionsModel::VT_MAX_CONVERSATION_HISTORY_LENGTH, max_conversation_history_length, 1);
3145   }
add_annotation_actions_specActionsModelBuilder3146   void add_annotation_actions_spec(flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec> annotation_actions_spec) {
3147     fbb_.AddOffset(ActionsModel::VT_ANNOTATION_ACTIONS_SPEC, annotation_actions_spec);
3148   }
add_rulesActionsModelBuilder3149   void add_rules(flatbuffers::Offset<libtextclassifier3::RulesModel> rules) {
3150     fbb_.AddOffset(ActionsModel::VT_RULES, rules);
3151   }
add_android_intent_optionsActionsModelBuilder3152   void add_android_intent_options(flatbuffers::Offset<libtextclassifier3::IntentFactoryModel> android_intent_options) {
3153     fbb_.AddOffset(ActionsModel::VT_ANDROID_INTENT_OPTIONS, android_intent_options);
3154   }
add_resourcesActionsModelBuilder3155   void add_resources(flatbuffers::Offset<libtextclassifier3::ResourcePool> resources) {
3156     fbb_.AddOffset(ActionsModel::VT_RESOURCES, resources);
3157   }
add_actions_entity_data_schemaActionsModelBuilder3158   void add_actions_entity_data_schema(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> actions_entity_data_schema) {
3159     fbb_.AddOffset(ActionsModel::VT_ACTIONS_ENTITY_DATA_SCHEMA, actions_entity_data_schema);
3160   }
add_ranking_optionsActionsModelBuilder3161   void add_ranking_options(flatbuffers::Offset<libtextclassifier3::RankingOptions> ranking_options) {
3162     fbb_.AddOffset(ActionsModel::VT_RANKING_OPTIONS, ranking_options);
3163   }
add_lua_actions_scriptActionsModelBuilder3164   void add_lua_actions_script(flatbuffers::Offset<flatbuffers::String> lua_actions_script) {
3165     fbb_.AddOffset(ActionsModel::VT_LUA_ACTIONS_SCRIPT, lua_actions_script);
3166   }
add_compressed_lua_actions_scriptActionsModelBuilder3167   void add_compressed_lua_actions_script(flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_lua_actions_script) {
3168     fbb_.AddOffset(ActionsModel::VT_COMPRESSED_LUA_ACTIONS_SCRIPT, compressed_lua_actions_script);
3169   }
add_low_confidence_rulesActionsModelBuilder3170   void add_low_confidence_rules(flatbuffers::Offset<libtextclassifier3::RulesModel> low_confidence_rules) {
3171     fbb_.AddOffset(ActionsModel::VT_LOW_CONFIDENCE_RULES, low_confidence_rules);
3172   }
add_low_confidence_ngram_modelActionsModelBuilder3173   void add_low_confidence_ngram_model(flatbuffers::Offset<libtextclassifier3::NGramLinearRegressionModel> low_confidence_ngram_model) {
3174     fbb_.AddOffset(ActionsModel::VT_LOW_CONFIDENCE_NGRAM_MODEL, low_confidence_ngram_model);
3175   }
add_feature_processor_optionsActionsModelBuilder3176   void add_feature_processor_options(flatbuffers::Offset<libtextclassifier3::ActionsTokenFeatureProcessorOptions> feature_processor_options) {
3177     fbb_.AddOffset(ActionsModel::VT_FEATURE_PROCESSOR_OPTIONS, feature_processor_options);
3178   }
add_low_confidence_tflite_modelActionsModelBuilder3179   void add_low_confidence_tflite_model(flatbuffers::Offset<libtextclassifier3::TFLiteSensitiveClassifierConfig> low_confidence_tflite_model) {
3180     fbb_.AddOffset(ActionsModel::VT_LOW_CONFIDENCE_TFLITE_MODEL, low_confidence_tflite_model);
3181   }
ActionsModelBuilderActionsModelBuilder3182   explicit ActionsModelBuilder(flatbuffers::FlatBufferBuilder &_fbb)
3183         : fbb_(_fbb) {
3184     start_ = fbb_.StartTable();
3185   }
FinishActionsModelBuilder3186   flatbuffers::Offset<ActionsModel> Finish() {
3187     const auto end = fbb_.EndTable(start_);
3188     auto o = flatbuffers::Offset<ActionsModel>(end);
3189     return o;
3190   }
3191 };
3192 
3193 inline flatbuffers::Offset<ActionsModel> CreateActionsModel(
3194     flatbuffers::FlatBufferBuilder &_fbb,
3195     flatbuffers::Offset<flatbuffers::String> locales = 0,
3196     int32_t version = 0,
3197     flatbuffers::Offset<flatbuffers::String> name = 0,
3198     flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec> tflite_model_spec = 0,
3199     flatbuffers::Offset<flatbuffers::String> smart_reply_action_type = 0,
3200     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>>> action_type = 0,
3201     flatbuffers::Offset<libtextclassifier3::TriggeringPreconditions> preconditions = 0,
3202     int32_t num_smart_replies = 3,
3203     int32_t max_conversation_history_length = 1,
3204     flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec> annotation_actions_spec = 0,
3205     flatbuffers::Offset<libtextclassifier3::RulesModel> rules = 0,
3206     flatbuffers::Offset<libtextclassifier3::IntentFactoryModel> android_intent_options = 0,
3207     flatbuffers::Offset<libtextclassifier3::ResourcePool> resources = 0,
3208     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> actions_entity_data_schema = 0,
3209     flatbuffers::Offset<libtextclassifier3::RankingOptions> ranking_options = 0,
3210     flatbuffers::Offset<flatbuffers::String> lua_actions_script = 0,
3211     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_lua_actions_script = 0,
3212     flatbuffers::Offset<libtextclassifier3::RulesModel> low_confidence_rules = 0,
3213     flatbuffers::Offset<libtextclassifier3::NGramLinearRegressionModel> low_confidence_ngram_model = 0,
3214     flatbuffers::Offset<libtextclassifier3::ActionsTokenFeatureProcessorOptions> feature_processor_options = 0,
3215     flatbuffers::Offset<libtextclassifier3::TFLiteSensitiveClassifierConfig> low_confidence_tflite_model = 0) {
3216   ActionsModelBuilder builder_(_fbb);
3217   builder_.add_low_confidence_tflite_model(low_confidence_tflite_model);
3218   builder_.add_feature_processor_options(feature_processor_options);
3219   builder_.add_low_confidence_ngram_model(low_confidence_ngram_model);
3220   builder_.add_low_confidence_rules(low_confidence_rules);
3221   builder_.add_compressed_lua_actions_script(compressed_lua_actions_script);
3222   builder_.add_lua_actions_script(lua_actions_script);
3223   builder_.add_ranking_options(ranking_options);
3224   builder_.add_actions_entity_data_schema(actions_entity_data_schema);
3225   builder_.add_resources(resources);
3226   builder_.add_android_intent_options(android_intent_options);
3227   builder_.add_rules(rules);
3228   builder_.add_annotation_actions_spec(annotation_actions_spec);
3229   builder_.add_max_conversation_history_length(max_conversation_history_length);
3230   builder_.add_num_smart_replies(num_smart_replies);
3231   builder_.add_preconditions(preconditions);
3232   builder_.add_action_type(action_type);
3233   builder_.add_smart_reply_action_type(smart_reply_action_type);
3234   builder_.add_tflite_model_spec(tflite_model_spec);
3235   builder_.add_name(name);
3236   builder_.add_version(version);
3237   builder_.add_locales(locales);
3238   return builder_.Finish();
3239 }
3240 
3241 inline flatbuffers::Offset<ActionsModel> CreateActionsModelDirect(
3242     flatbuffers::FlatBufferBuilder &_fbb,
3243     const char *locales = nullptr,
3244     int32_t version = 0,
3245     const char *name = nullptr,
3246     flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec> tflite_model_spec = 0,
3247     const char *smart_reply_action_type = nullptr,
3248     const std::vector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>> *action_type = nullptr,
3249     flatbuffers::Offset<libtextclassifier3::TriggeringPreconditions> preconditions = 0,
3250     int32_t num_smart_replies = 3,
3251     int32_t max_conversation_history_length = 1,
3252     flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec> annotation_actions_spec = 0,
3253     flatbuffers::Offset<libtextclassifier3::RulesModel> rules = 0,
3254     flatbuffers::Offset<libtextclassifier3::IntentFactoryModel> android_intent_options = 0,
3255     flatbuffers::Offset<libtextclassifier3::ResourcePool> resources = 0,
3256     const std::vector<uint8_t> *actions_entity_data_schema = nullptr,
3257     flatbuffers::Offset<libtextclassifier3::RankingOptions> ranking_options = 0,
3258     const char *lua_actions_script = nullptr,
3259     flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_lua_actions_script = 0,
3260     flatbuffers::Offset<libtextclassifier3::RulesModel> low_confidence_rules = 0,
3261     flatbuffers::Offset<libtextclassifier3::NGramLinearRegressionModel> low_confidence_ngram_model = 0,
3262     flatbuffers::Offset<libtextclassifier3::ActionsTokenFeatureProcessorOptions> feature_processor_options = 0,
3263     flatbuffers::Offset<libtextclassifier3::TFLiteSensitiveClassifierConfig> low_confidence_tflite_model = 0) {
3264   auto locales__ = locales ? _fbb.CreateSharedString(locales) : 0;
3265   auto name__ = name ? _fbb.CreateSharedString(name) : 0;
3266   auto smart_reply_action_type__ = smart_reply_action_type ? _fbb.CreateSharedString(smart_reply_action_type) : 0;
3267   auto action_type__ = action_type ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>>(*action_type) : 0;
3268   auto actions_entity_data_schema__ = actions_entity_data_schema ? _fbb.CreateVector<uint8_t>(*actions_entity_data_schema) : 0;
3269   auto lua_actions_script__ = lua_actions_script ? _fbb.CreateSharedString(lua_actions_script) : 0;
3270   return libtextclassifier3::CreateActionsModel(
3271       _fbb,
3272       locales__,
3273       version,
3274       name__,
3275       tflite_model_spec,
3276       smart_reply_action_type__,
3277       action_type__,
3278       preconditions,
3279       num_smart_replies,
3280       max_conversation_history_length,
3281       annotation_actions_spec,
3282       rules,
3283       android_intent_options,
3284       resources,
3285       actions_entity_data_schema__,
3286       ranking_options,
3287       lua_actions_script__,
3288       compressed_lua_actions_script,
3289       low_confidence_rules,
3290       low_confidence_ngram_model,
3291       feature_processor_options,
3292       low_confidence_tflite_model);
3293 }
3294 
3295 flatbuffers::Offset<ActionsModel> CreateActionsModel(flatbuffers::FlatBufferBuilder &_fbb, const ActionsModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
3296 
PredictionMetadataT(const PredictionMetadataT & o)3297 inline PredictionMetadataT::PredictionMetadataT(const PredictionMetadataT &o)
3298       : prediction_type(o.prediction_type),
3299         task_spec((o.task_spec) ? new libtextclassifier3::ActionSuggestionSpecT(*o.task_spec) : nullptr),
3300         output_suggestions(o.output_suggestions),
3301         output_suggestions_scores(o.output_suggestions_scores),
3302         output_suggestions_spans(o.output_suggestions_spans) {
3303 }
3304 
3305 inline PredictionMetadataT &PredictionMetadataT::operator=(PredictionMetadataT o) FLATBUFFERS_NOEXCEPT {
3306   std::swap(prediction_type, o.prediction_type);
3307   std::swap(task_spec, o.task_spec);
3308   std::swap(output_suggestions, o.output_suggestions);
3309   std::swap(output_suggestions_scores, o.output_suggestions_scores);
3310   std::swap(output_suggestions_spans, o.output_suggestions_spans);
3311   return *this;
3312 }
3313 
UnPack(const flatbuffers::resolver_function_t * _resolver)3314 inline PredictionMetadataT *PredictionMetadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3315   auto _o = std::unique_ptr<PredictionMetadataT>(new PredictionMetadataT());
3316   UnPackTo(_o.get(), _resolver);
3317   return _o.release();
3318 }
3319 
UnPackTo(PredictionMetadataT * _o,const flatbuffers::resolver_function_t * _resolver)3320 inline void PredictionMetadata::UnPackTo(PredictionMetadataT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3321   (void)_o;
3322   (void)_resolver;
3323   { auto _e = prediction_type(); _o->prediction_type = _e; }
3324   { auto _e = task_spec(); if (_e) _o->task_spec = std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT>(_e->UnPack(_resolver)); }
3325   { auto _e = output_suggestions(); _o->output_suggestions = _e; }
3326   { auto _e = output_suggestions_scores(); _o->output_suggestions_scores = _e; }
3327   { auto _e = output_suggestions_spans(); _o->output_suggestions_spans = _e; }
3328 }
3329 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const PredictionMetadataT * _o,const flatbuffers::rehasher_function_t * _rehasher)3330 inline flatbuffers::Offset<PredictionMetadata> PredictionMetadata::Pack(flatbuffers::FlatBufferBuilder &_fbb, const PredictionMetadataT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3331   return CreatePredictionMetadata(_fbb, _o, _rehasher);
3332 }
3333 
CreatePredictionMetadata(flatbuffers::FlatBufferBuilder & _fbb,const PredictionMetadataT * _o,const flatbuffers::rehasher_function_t * _rehasher)3334 inline flatbuffers::Offset<PredictionMetadata> CreatePredictionMetadata(flatbuffers::FlatBufferBuilder &_fbb, const PredictionMetadataT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3335   (void)_rehasher;
3336   (void)_o;
3337   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const PredictionMetadataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3338   auto _prediction_type = _o->prediction_type;
3339   auto _task_spec = _o->task_spec ? CreateActionSuggestionSpec(_fbb, _o->task_spec.get(), _rehasher) : 0;
3340   auto _output_suggestions = _o->output_suggestions;
3341   auto _output_suggestions_scores = _o->output_suggestions_scores;
3342   auto _output_suggestions_spans = _o->output_suggestions_spans;
3343   return libtextclassifier3::CreatePredictionMetadata(
3344       _fbb,
3345       _prediction_type,
3346       _task_spec,
3347       _output_suggestions,
3348       _output_suggestions_scores,
3349       _output_suggestions_spans);
3350 }
3351 
3352 namespace TensorflowLiteModelSpec_ {
3353 
UnPack(const flatbuffers::resolver_function_t * _resolver)3354 inline InputNameIndexEntryT *InputNameIndexEntry::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3355   auto _o = std::unique_ptr<InputNameIndexEntryT>(new InputNameIndexEntryT());
3356   UnPackTo(_o.get(), _resolver);
3357   return _o.release();
3358 }
3359 
UnPackTo(InputNameIndexEntryT * _o,const flatbuffers::resolver_function_t * _resolver)3360 inline void InputNameIndexEntry::UnPackTo(InputNameIndexEntryT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3361   (void)_o;
3362   (void)_resolver;
3363   { auto _e = key(); if (_e) _o->key = _e->str(); }
3364   { auto _e = value(); _o->value = _e; }
3365 }
3366 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const InputNameIndexEntryT * _o,const flatbuffers::rehasher_function_t * _rehasher)3367 inline flatbuffers::Offset<InputNameIndexEntry> InputNameIndexEntry::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InputNameIndexEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3368   return CreateInputNameIndexEntry(_fbb, _o, _rehasher);
3369 }
3370 
CreateInputNameIndexEntry(flatbuffers::FlatBufferBuilder & _fbb,const InputNameIndexEntryT * _o,const flatbuffers::rehasher_function_t * _rehasher)3371 inline flatbuffers::Offset<InputNameIndexEntry> CreateInputNameIndexEntry(flatbuffers::FlatBufferBuilder &_fbb, const InputNameIndexEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3372   (void)_rehasher;
3373   (void)_o;
3374   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InputNameIndexEntryT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3375   auto _key = _fbb.CreateSharedString(_o->key);
3376   auto _value = _o->value;
3377   return libtextclassifier3::TensorflowLiteModelSpec_::CreateInputNameIndexEntry(
3378       _fbb,
3379       _key,
3380       _value);
3381 }
3382 
3383 }  // namespace TensorflowLiteModelSpec_
3384 
TensorflowLiteModelSpecT(const TensorflowLiteModelSpecT & o)3385 inline TensorflowLiteModelSpecT::TensorflowLiteModelSpecT(const TensorflowLiteModelSpecT &o)
3386       : tflite_model(o.tflite_model),
3387         input_user_id(o.input_user_id),
3388         input_context(o.input_context),
3389         input_context_length(o.input_context_length),
3390         input_time_diffs(o.input_time_diffs),
3391         input_num_suggestions(o.input_num_suggestions),
3392         input_token_embeddings(o.input_token_embeddings),
3393         input_num_tokens(o.input_num_tokens),
3394         output_replies(o.output_replies),
3395         output_replies_scores(o.output_replies_scores),
3396         output_sensitive_topic_score(o.output_sensitive_topic_score),
3397         output_triggering_score(o.output_triggering_score),
3398         output_actions_scores(o.output_actions_scores),
3399         resize_inputs(o.resize_inputs),
3400         input_flattened_token_embeddings(o.input_flattened_token_embeddings),
3401         input_length_to_pad(o.input_length_to_pad) {
3402   prediction_metadata.reserve(o.prediction_metadata.size());
3403   for (const auto &prediction_metadata_ : o.prediction_metadata) { prediction_metadata.emplace_back((prediction_metadata_) ? new libtextclassifier3::PredictionMetadataT(*prediction_metadata_) : nullptr); }
3404   input_name_index.reserve(o.input_name_index.size());
3405   for (const auto &input_name_index_ : o.input_name_index) { input_name_index.emplace_back((input_name_index_) ? new libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntryT(*input_name_index_) : nullptr); }
3406 }
3407 
3408 inline TensorflowLiteModelSpecT &TensorflowLiteModelSpecT::operator=(TensorflowLiteModelSpecT o) FLATBUFFERS_NOEXCEPT {
3409   std::swap(tflite_model, o.tflite_model);
3410   std::swap(input_user_id, o.input_user_id);
3411   std::swap(input_context, o.input_context);
3412   std::swap(input_context_length, o.input_context_length);
3413   std::swap(input_time_diffs, o.input_time_diffs);
3414   std::swap(input_num_suggestions, o.input_num_suggestions);
3415   std::swap(input_token_embeddings, o.input_token_embeddings);
3416   std::swap(input_num_tokens, o.input_num_tokens);
3417   std::swap(output_replies, o.output_replies);
3418   std::swap(output_replies_scores, o.output_replies_scores);
3419   std::swap(output_sensitive_topic_score, o.output_sensitive_topic_score);
3420   std::swap(output_triggering_score, o.output_triggering_score);
3421   std::swap(output_actions_scores, o.output_actions_scores);
3422   std::swap(resize_inputs, o.resize_inputs);
3423   std::swap(input_flattened_token_embeddings, o.input_flattened_token_embeddings);
3424   std::swap(prediction_metadata, o.prediction_metadata);
3425   std::swap(input_name_index, o.input_name_index);
3426   std::swap(input_length_to_pad, o.input_length_to_pad);
3427   return *this;
3428 }
3429 
UnPack(const flatbuffers::resolver_function_t * _resolver)3430 inline TensorflowLiteModelSpecT *TensorflowLiteModelSpec::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3431   auto _o = std::unique_ptr<TensorflowLiteModelSpecT>(new TensorflowLiteModelSpecT());
3432   UnPackTo(_o.get(), _resolver);
3433   return _o.release();
3434 }
3435 
UnPackTo(TensorflowLiteModelSpecT * _o,const flatbuffers::resolver_function_t * _resolver)3436 inline void TensorflowLiteModelSpec::UnPackTo(TensorflowLiteModelSpecT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3437   (void)_o;
3438   (void)_resolver;
3439   { auto _e = tflite_model(); if (_e) { _o->tflite_model.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->tflite_model.begin()); } }
3440   { auto _e = input_user_id(); _o->input_user_id = _e; }
3441   { auto _e = input_context(); _o->input_context = _e; }
3442   { auto _e = input_context_length(); _o->input_context_length = _e; }
3443   { auto _e = input_time_diffs(); _o->input_time_diffs = _e; }
3444   { auto _e = input_num_suggestions(); _o->input_num_suggestions = _e; }
3445   { auto _e = input_token_embeddings(); _o->input_token_embeddings = _e; }
3446   { auto _e = input_num_tokens(); _o->input_num_tokens = _e; }
3447   { auto _e = output_replies(); _o->output_replies = _e; }
3448   { auto _e = output_replies_scores(); _o->output_replies_scores = _e; }
3449   { auto _e = output_sensitive_topic_score(); _o->output_sensitive_topic_score = _e; }
3450   { auto _e = output_triggering_score(); _o->output_triggering_score = _e; }
3451   { auto _e = output_actions_scores(); _o->output_actions_scores = _e; }
3452   { auto _e = resize_inputs(); _o->resize_inputs = _e; }
3453   { auto _e = input_flattened_token_embeddings(); _o->input_flattened_token_embeddings = _e; }
3454   { auto _e = prediction_metadata(); if (_e) { _o->prediction_metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->prediction_metadata[_i] = std::unique_ptr<libtextclassifier3::PredictionMetadataT>(_e->Get(_i)->UnPack(_resolver)); } } }
3455   { auto _e = input_name_index(); if (_e) { _o->input_name_index.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->input_name_index[_i] = std::unique_ptr<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntryT>(_e->Get(_i)->UnPack(_resolver)); } } }
3456   { auto _e = input_length_to_pad(); _o->input_length_to_pad = _e; }
3457 }
3458 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TensorflowLiteModelSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)3459 inline flatbuffers::Offset<TensorflowLiteModelSpec> TensorflowLiteModelSpec::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorflowLiteModelSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3460   return CreateTensorflowLiteModelSpec(_fbb, _o, _rehasher);
3461 }
3462 
CreateTensorflowLiteModelSpec(flatbuffers::FlatBufferBuilder & _fbb,const TensorflowLiteModelSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)3463 inline flatbuffers::Offset<TensorflowLiteModelSpec> CreateTensorflowLiteModelSpec(flatbuffers::FlatBufferBuilder &_fbb, const TensorflowLiteModelSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3464   (void)_rehasher;
3465   (void)_o;
3466   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TensorflowLiteModelSpecT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3467   _fbb.ForceVectorAlignment(_o->tflite_model.size(), sizeof(uint8_t), 16);
3468   auto _tflite_model = _o->tflite_model.size() ? _fbb.CreateVector(_o->tflite_model) : 0;
3469   auto _input_user_id = _o->input_user_id;
3470   auto _input_context = _o->input_context;
3471   auto _input_context_length = _o->input_context_length;
3472   auto _input_time_diffs = _o->input_time_diffs;
3473   auto _input_num_suggestions = _o->input_num_suggestions;
3474   auto _input_token_embeddings = _o->input_token_embeddings;
3475   auto _input_num_tokens = _o->input_num_tokens;
3476   auto _output_replies = _o->output_replies;
3477   auto _output_replies_scores = _o->output_replies_scores;
3478   auto _output_sensitive_topic_score = _o->output_sensitive_topic_score;
3479   auto _output_triggering_score = _o->output_triggering_score;
3480   auto _output_actions_scores = _o->output_actions_scores;
3481   auto _resize_inputs = _o->resize_inputs;
3482   auto _input_flattened_token_embeddings = _o->input_flattened_token_embeddings;
3483   auto _prediction_metadata = _o->prediction_metadata.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::PredictionMetadata>> (_o->prediction_metadata.size(), [](size_t i, _VectorArgs *__va) { return CreatePredictionMetadata(*__va->__fbb, __va->__o->prediction_metadata[i].get(), __va->__rehasher); }, &_va ) : 0;
3484   auto _input_name_index = _o->input_name_index.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::TensorflowLiteModelSpec_::InputNameIndexEntry>> (_o->input_name_index.size(), [](size_t i, _VectorArgs *__va) { return CreateInputNameIndexEntry(*__va->__fbb, __va->__o->input_name_index[i].get(), __va->__rehasher); }, &_va ) : 0;
3485   auto _input_length_to_pad = _o->input_length_to_pad;
3486   return libtextclassifier3::CreateTensorflowLiteModelSpec(
3487       _fbb,
3488       _tflite_model,
3489       _input_user_id,
3490       _input_context,
3491       _input_context_length,
3492       _input_time_diffs,
3493       _input_num_suggestions,
3494       _input_token_embeddings,
3495       _input_num_tokens,
3496       _output_replies,
3497       _output_replies_scores,
3498       _output_sensitive_topic_score,
3499       _output_triggering_score,
3500       _output_actions_scores,
3501       _resize_inputs,
3502       _input_flattened_token_embeddings,
3503       _prediction_metadata,
3504       _input_name_index,
3505       _input_length_to_pad);
3506 }
3507 
ActionsTokenizerOptionsT(const ActionsTokenizerOptionsT & o)3508 inline ActionsTokenizerOptionsT::ActionsTokenizerOptionsT(const ActionsTokenizerOptionsT &o)
3509       : type(o.type),
3510         icu_preserve_whitespace_tokens(o.icu_preserve_whitespace_tokens),
3511         tokenize_on_script_change(o.tokenize_on_script_change) {
3512   tokenization_codepoint_config.reserve(o.tokenization_codepoint_config.size());
3513   for (const auto &tokenization_codepoint_config_ : o.tokenization_codepoint_config) { tokenization_codepoint_config.emplace_back((tokenization_codepoint_config_) ? new libtextclassifier3::TokenizationCodepointRangeT(*tokenization_codepoint_config_) : nullptr); }
3514   internal_tokenizer_codepoint_ranges.reserve(o.internal_tokenizer_codepoint_ranges.size());
3515   for (const auto &internal_tokenizer_codepoint_ranges_ : o.internal_tokenizer_codepoint_ranges) { internal_tokenizer_codepoint_ranges.emplace_back((internal_tokenizer_codepoint_ranges_) ? new libtextclassifier3::CodepointRangeT(*internal_tokenizer_codepoint_ranges_) : nullptr); }
3516 }
3517 
3518 inline ActionsTokenizerOptionsT &ActionsTokenizerOptionsT::operator=(ActionsTokenizerOptionsT o) FLATBUFFERS_NOEXCEPT {
3519   std::swap(type, o.type);
3520   std::swap(icu_preserve_whitespace_tokens, o.icu_preserve_whitespace_tokens);
3521   std::swap(tokenization_codepoint_config, o.tokenization_codepoint_config);
3522   std::swap(internal_tokenizer_codepoint_ranges, o.internal_tokenizer_codepoint_ranges);
3523   std::swap(tokenize_on_script_change, o.tokenize_on_script_change);
3524   return *this;
3525 }
3526 
UnPack(const flatbuffers::resolver_function_t * _resolver)3527 inline ActionsTokenizerOptionsT *ActionsTokenizerOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3528   auto _o = std::unique_ptr<ActionsTokenizerOptionsT>(new ActionsTokenizerOptionsT());
3529   UnPackTo(_o.get(), _resolver);
3530   return _o.release();
3531 }
3532 
UnPackTo(ActionsTokenizerOptionsT * _o,const flatbuffers::resolver_function_t * _resolver)3533 inline void ActionsTokenizerOptions::UnPackTo(ActionsTokenizerOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3534   (void)_o;
3535   (void)_resolver;
3536   { auto _e = type(); _o->type = _e; }
3537   { auto _e = icu_preserve_whitespace_tokens(); _o->icu_preserve_whitespace_tokens = _e; }
3538   { auto _e = tokenization_codepoint_config(); if (_e) { _o->tokenization_codepoint_config.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tokenization_codepoint_config[_i] = std::unique_ptr<libtextclassifier3::TokenizationCodepointRangeT>(_e->Get(_i)->UnPack(_resolver)); } } }
3539   { auto _e = internal_tokenizer_codepoint_ranges(); if (_e) { _o->internal_tokenizer_codepoint_ranges.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->internal_tokenizer_codepoint_ranges[_i] = std::unique_ptr<libtextclassifier3::CodepointRangeT>(_e->Get(_i)->UnPack(_resolver)); } } }
3540   { auto _e = tokenize_on_script_change(); _o->tokenize_on_script_change = _e; }
3541 }
3542 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ActionsTokenizerOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)3543 inline flatbuffers::Offset<ActionsTokenizerOptions> ActionsTokenizerOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenizerOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3544   return CreateActionsTokenizerOptions(_fbb, _o, _rehasher);
3545 }
3546 
CreateActionsTokenizerOptions(flatbuffers::FlatBufferBuilder & _fbb,const ActionsTokenizerOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)3547 inline flatbuffers::Offset<ActionsTokenizerOptions> CreateActionsTokenizerOptions(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenizerOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3548   (void)_rehasher;
3549   (void)_o;
3550   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ActionsTokenizerOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3551   auto _type = _o->type;
3552   auto _icu_preserve_whitespace_tokens = _o->icu_preserve_whitespace_tokens;
3553   auto _tokenization_codepoint_config = _o->tokenization_codepoint_config.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::TokenizationCodepointRange>> (_o->tokenization_codepoint_config.size(), [](size_t i, _VectorArgs *__va) { return CreateTokenizationCodepointRange(*__va->__fbb, __va->__o->tokenization_codepoint_config[i].get(), __va->__rehasher); }, &_va ) : 0;
3554   auto _internal_tokenizer_codepoint_ranges = _o->internal_tokenizer_codepoint_ranges.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::CodepointRange>> (_o->internal_tokenizer_codepoint_ranges.size(), [](size_t i, _VectorArgs *__va) { return CreateCodepointRange(*__va->__fbb, __va->__o->internal_tokenizer_codepoint_ranges[i].get(), __va->__rehasher); }, &_va ) : 0;
3555   auto _tokenize_on_script_change = _o->tokenize_on_script_change;
3556   return libtextclassifier3::CreateActionsTokenizerOptions(
3557       _fbb,
3558       _type,
3559       _icu_preserve_whitespace_tokens,
3560       _tokenization_codepoint_config,
3561       _internal_tokenizer_codepoint_ranges,
3562       _tokenize_on_script_change);
3563 }
3564 
ActionsTokenFeatureProcessorOptionsT(const ActionsTokenFeatureProcessorOptionsT & o)3565 inline ActionsTokenFeatureProcessorOptionsT::ActionsTokenFeatureProcessorOptionsT(const ActionsTokenFeatureProcessorOptionsT &o)
3566       : tokenizer_options((o.tokenizer_options) ? new libtextclassifier3::ActionsTokenizerOptionsT(*o.tokenizer_options) : nullptr),
3567         embedding_model(o.embedding_model),
3568         embedding_size(o.embedding_size),
3569         embedding_quantization_bits(o.embedding_quantization_bits),
3570         num_buckets(o.num_buckets),
3571         chargram_orders(o.chargram_orders),
3572         extract_case_feature(o.extract_case_feature),
3573         unicode_aware_features(o.unicode_aware_features),
3574         regexp_features(o.regexp_features),
3575         remap_digits(o.remap_digits),
3576         lowercase_tokens(o.lowercase_tokens),
3577         max_token_length(o.max_token_length),
3578         max_num_tokens_per_message(o.max_num_tokens_per_message),
3579         min_num_tokens_per_message(o.min_num_tokens_per_message),
3580         max_num_total_tokens(o.max_num_total_tokens),
3581         min_num_total_tokens(o.min_num_total_tokens),
3582         padding_token_id(o.padding_token_id),
3583         start_token_id(o.start_token_id),
3584         end_token_id(o.end_token_id) {
3585 }
3586 
3587 inline ActionsTokenFeatureProcessorOptionsT &ActionsTokenFeatureProcessorOptionsT::operator=(ActionsTokenFeatureProcessorOptionsT o) FLATBUFFERS_NOEXCEPT {
3588   std::swap(tokenizer_options, o.tokenizer_options);
3589   std::swap(embedding_model, o.embedding_model);
3590   std::swap(embedding_size, o.embedding_size);
3591   std::swap(embedding_quantization_bits, o.embedding_quantization_bits);
3592   std::swap(num_buckets, o.num_buckets);
3593   std::swap(chargram_orders, o.chargram_orders);
3594   std::swap(extract_case_feature, o.extract_case_feature);
3595   std::swap(unicode_aware_features, o.unicode_aware_features);
3596   std::swap(regexp_features, o.regexp_features);
3597   std::swap(remap_digits, o.remap_digits);
3598   std::swap(lowercase_tokens, o.lowercase_tokens);
3599   std::swap(max_token_length, o.max_token_length);
3600   std::swap(max_num_tokens_per_message, o.max_num_tokens_per_message);
3601   std::swap(min_num_tokens_per_message, o.min_num_tokens_per_message);
3602   std::swap(max_num_total_tokens, o.max_num_total_tokens);
3603   std::swap(min_num_total_tokens, o.min_num_total_tokens);
3604   std::swap(padding_token_id, o.padding_token_id);
3605   std::swap(start_token_id, o.start_token_id);
3606   std::swap(end_token_id, o.end_token_id);
3607   return *this;
3608 }
3609 
UnPack(const flatbuffers::resolver_function_t * _resolver)3610 inline ActionsTokenFeatureProcessorOptionsT *ActionsTokenFeatureProcessorOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3611   auto _o = std::unique_ptr<ActionsTokenFeatureProcessorOptionsT>(new ActionsTokenFeatureProcessorOptionsT());
3612   UnPackTo(_o.get(), _resolver);
3613   return _o.release();
3614 }
3615 
UnPackTo(ActionsTokenFeatureProcessorOptionsT * _o,const flatbuffers::resolver_function_t * _resolver)3616 inline void ActionsTokenFeatureProcessorOptions::UnPackTo(ActionsTokenFeatureProcessorOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3617   (void)_o;
3618   (void)_resolver;
3619   { auto _e = tokenizer_options(); if (_e) _o->tokenizer_options = std::unique_ptr<libtextclassifier3::ActionsTokenizerOptionsT>(_e->UnPack(_resolver)); }
3620   { auto _e = embedding_model(); if (_e) { _o->embedding_model.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->embedding_model.begin()); } }
3621   { auto _e = embedding_size(); _o->embedding_size = _e; }
3622   { auto _e = embedding_quantization_bits(); _o->embedding_quantization_bits = _e; }
3623   { auto _e = num_buckets(); _o->num_buckets = _e; }
3624   { auto _e = chargram_orders(); if (_e) { _o->chargram_orders.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->chargram_orders[_i] = _e->Get(_i); } } }
3625   { auto _e = extract_case_feature(); _o->extract_case_feature = _e; }
3626   { auto _e = unicode_aware_features(); _o->unicode_aware_features = _e; }
3627   { auto _e = regexp_features(); if (_e) { _o->regexp_features.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->regexp_features[_i] = _e->Get(_i)->str(); } } }
3628   { auto _e = remap_digits(); _o->remap_digits = _e; }
3629   { auto _e = lowercase_tokens(); _o->lowercase_tokens = _e; }
3630   { auto _e = max_token_length(); _o->max_token_length = _e; }
3631   { auto _e = max_num_tokens_per_message(); _o->max_num_tokens_per_message = _e; }
3632   { auto _e = min_num_tokens_per_message(); _o->min_num_tokens_per_message = _e; }
3633   { auto _e = max_num_total_tokens(); _o->max_num_total_tokens = _e; }
3634   { auto _e = min_num_total_tokens(); _o->min_num_total_tokens = _e; }
3635   { auto _e = padding_token_id(); _o->padding_token_id = _e; }
3636   { auto _e = start_token_id(); _o->start_token_id = _e; }
3637   { auto _e = end_token_id(); _o->end_token_id = _e; }
3638 }
3639 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ActionsTokenFeatureProcessorOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)3640 inline flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> ActionsTokenFeatureProcessorOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenFeatureProcessorOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3641   return CreateActionsTokenFeatureProcessorOptions(_fbb, _o, _rehasher);
3642 }
3643 
CreateActionsTokenFeatureProcessorOptions(flatbuffers::FlatBufferBuilder & _fbb,const ActionsTokenFeatureProcessorOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)3644 inline flatbuffers::Offset<ActionsTokenFeatureProcessorOptions> CreateActionsTokenFeatureProcessorOptions(flatbuffers::FlatBufferBuilder &_fbb, const ActionsTokenFeatureProcessorOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3645   (void)_rehasher;
3646   (void)_o;
3647   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ActionsTokenFeatureProcessorOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3648   auto _tokenizer_options = _o->tokenizer_options ? CreateActionsTokenizerOptions(_fbb, _o->tokenizer_options.get(), _rehasher) : 0;
3649   _fbb.ForceVectorAlignment(_o->embedding_model.size(), sizeof(uint8_t), 16);
3650   auto _embedding_model = _o->embedding_model.size() ? _fbb.CreateVector(_o->embedding_model) : 0;
3651   auto _embedding_size = _o->embedding_size;
3652   auto _embedding_quantization_bits = _o->embedding_quantization_bits;
3653   auto _num_buckets = _o->num_buckets;
3654   auto _chargram_orders = _o->chargram_orders.size() ? _fbb.CreateVector(_o->chargram_orders) : 0;
3655   auto _extract_case_feature = _o->extract_case_feature;
3656   auto _unicode_aware_features = _o->unicode_aware_features;
3657   auto _regexp_features = _o->regexp_features.size() ? _fbb.CreateVectorOfStrings(_o->regexp_features) : 0;
3658   auto _remap_digits = _o->remap_digits;
3659   auto _lowercase_tokens = _o->lowercase_tokens;
3660   auto _max_token_length = _o->max_token_length;
3661   auto _max_num_tokens_per_message = _o->max_num_tokens_per_message;
3662   auto _min_num_tokens_per_message = _o->min_num_tokens_per_message;
3663   auto _max_num_total_tokens = _o->max_num_total_tokens;
3664   auto _min_num_total_tokens = _o->min_num_total_tokens;
3665   auto _padding_token_id = _o->padding_token_id;
3666   auto _start_token_id = _o->start_token_id;
3667   auto _end_token_id = _o->end_token_id;
3668   return libtextclassifier3::CreateActionsTokenFeatureProcessorOptions(
3669       _fbb,
3670       _tokenizer_options,
3671       _embedding_model,
3672       _embedding_size,
3673       _embedding_quantization_bits,
3674       _num_buckets,
3675       _chargram_orders,
3676       _extract_case_feature,
3677       _unicode_aware_features,
3678       _regexp_features,
3679       _remap_digits,
3680       _lowercase_tokens,
3681       _max_token_length,
3682       _max_num_tokens_per_message,
3683       _min_num_tokens_per_message,
3684       _max_num_total_tokens,
3685       _min_num_total_tokens,
3686       _padding_token_id,
3687       _start_token_id,
3688       _end_token_id);
3689 }
3690 
NGramLinearRegressionModelT(const NGramLinearRegressionModelT & o)3691 inline NGramLinearRegressionModelT::NGramLinearRegressionModelT(const NGramLinearRegressionModelT &o)
3692       : hashed_ngram_tokens(o.hashed_ngram_tokens),
3693         ngram_start_offsets(o.ngram_start_offsets),
3694         ngram_weights(o.ngram_weights),
3695         default_token_weight(o.default_token_weight),
3696         max_denom_ngram_length(o.max_denom_ngram_length),
3697         max_skips(o.max_skips),
3698         threshold(o.threshold),
3699         tokenizer_options((o.tokenizer_options) ? new libtextclassifier3::ActionsTokenizerOptionsT(*o.tokenizer_options) : nullptr) {
3700 }
3701 
3702 inline NGramLinearRegressionModelT &NGramLinearRegressionModelT::operator=(NGramLinearRegressionModelT o) FLATBUFFERS_NOEXCEPT {
3703   std::swap(hashed_ngram_tokens, o.hashed_ngram_tokens);
3704   std::swap(ngram_start_offsets, o.ngram_start_offsets);
3705   std::swap(ngram_weights, o.ngram_weights);
3706   std::swap(default_token_weight, o.default_token_weight);
3707   std::swap(max_denom_ngram_length, o.max_denom_ngram_length);
3708   std::swap(max_skips, o.max_skips);
3709   std::swap(threshold, o.threshold);
3710   std::swap(tokenizer_options, o.tokenizer_options);
3711   return *this;
3712 }
3713 
UnPack(const flatbuffers::resolver_function_t * _resolver)3714 inline NGramLinearRegressionModelT *NGramLinearRegressionModel::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3715   auto _o = std::unique_ptr<NGramLinearRegressionModelT>(new NGramLinearRegressionModelT());
3716   UnPackTo(_o.get(), _resolver);
3717   return _o.release();
3718 }
3719 
UnPackTo(NGramLinearRegressionModelT * _o,const flatbuffers::resolver_function_t * _resolver)3720 inline void NGramLinearRegressionModel::UnPackTo(NGramLinearRegressionModelT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3721   (void)_o;
3722   (void)_resolver;
3723   { auto _e = hashed_ngram_tokens(); if (_e) { _o->hashed_ngram_tokens.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->hashed_ngram_tokens[_i] = _e->Get(_i); } } }
3724   { auto _e = ngram_start_offsets(); if (_e) { _o->ngram_start_offsets.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->ngram_start_offsets[_i] = _e->Get(_i); } } }
3725   { auto _e = ngram_weights(); if (_e) { _o->ngram_weights.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->ngram_weights[_i] = _e->Get(_i); } } }
3726   { auto _e = default_token_weight(); _o->default_token_weight = _e; }
3727   { auto _e = max_denom_ngram_length(); _o->max_denom_ngram_length = _e; }
3728   { auto _e = max_skips(); _o->max_skips = _e; }
3729   { auto _e = threshold(); _o->threshold = _e; }
3730   { auto _e = tokenizer_options(); if (_e) _o->tokenizer_options = std::unique_ptr<libtextclassifier3::ActionsTokenizerOptionsT>(_e->UnPack(_resolver)); }
3731 }
3732 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const NGramLinearRegressionModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)3733 inline flatbuffers::Offset<NGramLinearRegressionModel> NGramLinearRegressionModel::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NGramLinearRegressionModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3734   return CreateNGramLinearRegressionModel(_fbb, _o, _rehasher);
3735 }
3736 
CreateNGramLinearRegressionModel(flatbuffers::FlatBufferBuilder & _fbb,const NGramLinearRegressionModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)3737 inline flatbuffers::Offset<NGramLinearRegressionModel> CreateNGramLinearRegressionModel(flatbuffers::FlatBufferBuilder &_fbb, const NGramLinearRegressionModelT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3738   (void)_rehasher;
3739   (void)_o;
3740   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NGramLinearRegressionModelT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3741   auto _hashed_ngram_tokens = _o->hashed_ngram_tokens.size() ? _fbb.CreateVector(_o->hashed_ngram_tokens) : 0;
3742   auto _ngram_start_offsets = _o->ngram_start_offsets.size() ? _fbb.CreateVector(_o->ngram_start_offsets) : 0;
3743   auto _ngram_weights = _o->ngram_weights.size() ? _fbb.CreateVector(_o->ngram_weights) : 0;
3744   auto _default_token_weight = _o->default_token_weight;
3745   auto _max_denom_ngram_length = _o->max_denom_ngram_length;
3746   auto _max_skips = _o->max_skips;
3747   auto _threshold = _o->threshold;
3748   auto _tokenizer_options = _o->tokenizer_options ? CreateActionsTokenizerOptions(_fbb, _o->tokenizer_options.get(), _rehasher) : 0;
3749   return libtextclassifier3::CreateNGramLinearRegressionModel(
3750       _fbb,
3751       _hashed_ngram_tokens,
3752       _ngram_start_offsets,
3753       _ngram_weights,
3754       _default_token_weight,
3755       _max_denom_ngram_length,
3756       _max_skips,
3757       _threshold,
3758       _tokenizer_options);
3759 }
3760 
TFLiteSensitiveClassifierConfigT(const TFLiteSensitiveClassifierConfigT & o)3761 inline TFLiteSensitiveClassifierConfigT::TFLiteSensitiveClassifierConfigT(const TFLiteSensitiveClassifierConfigT &o)
3762       : model_spec((o.model_spec) ? new libtextclassifier3::TensorflowLiteModelSpecT(*o.model_spec) : nullptr),
3763         threshold(o.threshold) {
3764 }
3765 
3766 inline TFLiteSensitiveClassifierConfigT &TFLiteSensitiveClassifierConfigT::operator=(TFLiteSensitiveClassifierConfigT o) FLATBUFFERS_NOEXCEPT {
3767   std::swap(model_spec, o.model_spec);
3768   std::swap(threshold, o.threshold);
3769   return *this;
3770 }
3771 
UnPack(const flatbuffers::resolver_function_t * _resolver)3772 inline TFLiteSensitiveClassifierConfigT *TFLiteSensitiveClassifierConfig::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3773   auto _o = std::unique_ptr<TFLiteSensitiveClassifierConfigT>(new TFLiteSensitiveClassifierConfigT());
3774   UnPackTo(_o.get(), _resolver);
3775   return _o.release();
3776 }
3777 
UnPackTo(TFLiteSensitiveClassifierConfigT * _o,const flatbuffers::resolver_function_t * _resolver)3778 inline void TFLiteSensitiveClassifierConfig::UnPackTo(TFLiteSensitiveClassifierConfigT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3779   (void)_o;
3780   (void)_resolver;
3781   { auto _e = model_spec(); if (_e) _o->model_spec = std::unique_ptr<libtextclassifier3::TensorflowLiteModelSpecT>(_e->UnPack(_resolver)); }
3782   { auto _e = threshold(); _o->threshold = _e; }
3783 }
3784 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TFLiteSensitiveClassifierConfigT * _o,const flatbuffers::rehasher_function_t * _rehasher)3785 inline flatbuffers::Offset<TFLiteSensitiveClassifierConfig> TFLiteSensitiveClassifierConfig::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TFLiteSensitiveClassifierConfigT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3786   return CreateTFLiteSensitiveClassifierConfig(_fbb, _o, _rehasher);
3787 }
3788 
CreateTFLiteSensitiveClassifierConfig(flatbuffers::FlatBufferBuilder & _fbb,const TFLiteSensitiveClassifierConfigT * _o,const flatbuffers::rehasher_function_t * _rehasher)3789 inline flatbuffers::Offset<TFLiteSensitiveClassifierConfig> CreateTFLiteSensitiveClassifierConfig(flatbuffers::FlatBufferBuilder &_fbb, const TFLiteSensitiveClassifierConfigT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3790   (void)_rehasher;
3791   (void)_o;
3792   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TFLiteSensitiveClassifierConfigT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3793   auto _model_spec = _o->model_spec ? CreateTensorflowLiteModelSpec(_fbb, _o->model_spec.get(), _rehasher) : 0;
3794   auto _threshold = _o->threshold;
3795   return libtextclassifier3::CreateTFLiteSensitiveClassifierConfig(
3796       _fbb,
3797       _model_spec,
3798       _threshold);
3799 }
3800 
TriggeringPreconditionsT(const TriggeringPreconditionsT & o)3801 inline TriggeringPreconditionsT::TriggeringPreconditionsT(const TriggeringPreconditionsT &o)
3802       : min_smart_reply_triggering_score(o.min_smart_reply_triggering_score),
3803         max_sensitive_topic_score(o.max_sensitive_topic_score),
3804         suppress_on_sensitive_topic(o.suppress_on_sensitive_topic),
3805         min_input_length(o.min_input_length),
3806         max_input_length(o.max_input_length),
3807         min_locale_match_fraction(o.min_locale_match_fraction),
3808         handle_missing_locale_as_supported(o.handle_missing_locale_as_supported),
3809         handle_unknown_locale_as_supported(o.handle_unknown_locale_as_supported),
3810         suppress_on_low_confidence_input(o.suppress_on_low_confidence_input),
3811         low_confidence_rules((o.low_confidence_rules) ? new libtextclassifier3::RulesModelT(*o.low_confidence_rules) : nullptr),
3812         min_reply_score_threshold(o.min_reply_score_threshold) {
3813 }
3814 
3815 inline TriggeringPreconditionsT &TriggeringPreconditionsT::operator=(TriggeringPreconditionsT o) FLATBUFFERS_NOEXCEPT {
3816   std::swap(min_smart_reply_triggering_score, o.min_smart_reply_triggering_score);
3817   std::swap(max_sensitive_topic_score, o.max_sensitive_topic_score);
3818   std::swap(suppress_on_sensitive_topic, o.suppress_on_sensitive_topic);
3819   std::swap(min_input_length, o.min_input_length);
3820   std::swap(max_input_length, o.max_input_length);
3821   std::swap(min_locale_match_fraction, o.min_locale_match_fraction);
3822   std::swap(handle_missing_locale_as_supported, o.handle_missing_locale_as_supported);
3823   std::swap(handle_unknown_locale_as_supported, o.handle_unknown_locale_as_supported);
3824   std::swap(suppress_on_low_confidence_input, o.suppress_on_low_confidence_input);
3825   std::swap(low_confidence_rules, o.low_confidence_rules);
3826   std::swap(min_reply_score_threshold, o.min_reply_score_threshold);
3827   return *this;
3828 }
3829 
UnPack(const flatbuffers::resolver_function_t * _resolver)3830 inline TriggeringPreconditionsT *TriggeringPreconditions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3831   auto _o = std::unique_ptr<TriggeringPreconditionsT>(new TriggeringPreconditionsT());
3832   UnPackTo(_o.get(), _resolver);
3833   return _o.release();
3834 }
3835 
UnPackTo(TriggeringPreconditionsT * _o,const flatbuffers::resolver_function_t * _resolver)3836 inline void TriggeringPreconditions::UnPackTo(TriggeringPreconditionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3837   (void)_o;
3838   (void)_resolver;
3839   { auto _e = min_smart_reply_triggering_score(); _o->min_smart_reply_triggering_score = _e; }
3840   { auto _e = max_sensitive_topic_score(); _o->max_sensitive_topic_score = _e; }
3841   { auto _e = suppress_on_sensitive_topic(); _o->suppress_on_sensitive_topic = _e; }
3842   { auto _e = min_input_length(); _o->min_input_length = _e; }
3843   { auto _e = max_input_length(); _o->max_input_length = _e; }
3844   { auto _e = min_locale_match_fraction(); _o->min_locale_match_fraction = _e; }
3845   { auto _e = handle_missing_locale_as_supported(); _o->handle_missing_locale_as_supported = _e; }
3846   { auto _e = handle_unknown_locale_as_supported(); _o->handle_unknown_locale_as_supported = _e; }
3847   { auto _e = suppress_on_low_confidence_input(); _o->suppress_on_low_confidence_input = _e; }
3848   { auto _e = low_confidence_rules(); if (_e) _o->low_confidence_rules = std::unique_ptr<libtextclassifier3::RulesModelT>(_e->UnPack(_resolver)); }
3849   { auto _e = min_reply_score_threshold(); _o->min_reply_score_threshold = _e; }
3850 }
3851 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TriggeringPreconditionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)3852 inline flatbuffers::Offset<TriggeringPreconditions> TriggeringPreconditions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TriggeringPreconditionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3853   return CreateTriggeringPreconditions(_fbb, _o, _rehasher);
3854 }
3855 
CreateTriggeringPreconditions(flatbuffers::FlatBufferBuilder & _fbb,const TriggeringPreconditionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)3856 inline flatbuffers::Offset<TriggeringPreconditions> CreateTriggeringPreconditions(flatbuffers::FlatBufferBuilder &_fbb, const TriggeringPreconditionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3857   (void)_rehasher;
3858   (void)_o;
3859   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TriggeringPreconditionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3860   auto _min_smart_reply_triggering_score = _o->min_smart_reply_triggering_score;
3861   auto _max_sensitive_topic_score = _o->max_sensitive_topic_score;
3862   auto _suppress_on_sensitive_topic = _o->suppress_on_sensitive_topic;
3863   auto _min_input_length = _o->min_input_length;
3864   auto _max_input_length = _o->max_input_length;
3865   auto _min_locale_match_fraction = _o->min_locale_match_fraction;
3866   auto _handle_missing_locale_as_supported = _o->handle_missing_locale_as_supported;
3867   auto _handle_unknown_locale_as_supported = _o->handle_unknown_locale_as_supported;
3868   auto _suppress_on_low_confidence_input = _o->suppress_on_low_confidence_input;
3869   auto _low_confidence_rules = _o->low_confidence_rules ? CreateRulesModel(_fbb, _o->low_confidence_rules.get(), _rehasher) : 0;
3870   auto _min_reply_score_threshold = _o->min_reply_score_threshold;
3871   return libtextclassifier3::CreateTriggeringPreconditions(
3872       _fbb,
3873       _min_smart_reply_triggering_score,
3874       _max_sensitive_topic_score,
3875       _suppress_on_sensitive_topic,
3876       _min_input_length,
3877       _max_input_length,
3878       _min_locale_match_fraction,
3879       _handle_missing_locale_as_supported,
3880       _handle_unknown_locale_as_supported,
3881       _suppress_on_low_confidence_input,
3882       _low_confidence_rules,
3883       _min_reply_score_threshold);
3884 }
3885 
UnPack(const flatbuffers::resolver_function_t * _resolver)3886 inline ActionConceptToSuggestionT *ActionConceptToSuggestion::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3887   auto _o = std::unique_ptr<ActionConceptToSuggestionT>(new ActionConceptToSuggestionT());
3888   UnPackTo(_o.get(), _resolver);
3889   return _o.release();
3890 }
3891 
UnPackTo(ActionConceptToSuggestionT * _o,const flatbuffers::resolver_function_t * _resolver)3892 inline void ActionConceptToSuggestion::UnPackTo(ActionConceptToSuggestionT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3893   (void)_o;
3894   (void)_resolver;
3895   { auto _e = concept_name(); if (_e) _o->concept_name = _e->str(); }
3896   { auto _e = candidates(); if (_e) { _o->candidates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->candidates[_i] = _e->Get(_i)->str(); } } }
3897 }
3898 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ActionConceptToSuggestionT * _o,const flatbuffers::rehasher_function_t * _rehasher)3899 inline flatbuffers::Offset<ActionConceptToSuggestion> ActionConceptToSuggestion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionConceptToSuggestionT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3900   return CreateActionConceptToSuggestion(_fbb, _o, _rehasher);
3901 }
3902 
CreateActionConceptToSuggestion(flatbuffers::FlatBufferBuilder & _fbb,const ActionConceptToSuggestionT * _o,const flatbuffers::rehasher_function_t * _rehasher)3903 inline flatbuffers::Offset<ActionConceptToSuggestion> CreateActionConceptToSuggestion(flatbuffers::FlatBufferBuilder &_fbb, const ActionConceptToSuggestionT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3904   (void)_rehasher;
3905   (void)_o;
3906   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ActionConceptToSuggestionT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3907   auto _concept_name = _o->concept_name.empty() ? 0 : _fbb.CreateSharedString(_o->concept_name);
3908   auto _candidates = _o->candidates.size() ? _fbb.CreateVectorOfStrings(_o->candidates) : 0;
3909   return libtextclassifier3::CreateActionConceptToSuggestion(
3910       _fbb,
3911       _concept_name,
3912       _candidates);
3913 }
3914 
ActionSuggestionSpecT(const ActionSuggestionSpecT & o)3915 inline ActionSuggestionSpecT::ActionSuggestionSpecT(const ActionSuggestionSpecT &o)
3916       : type(o.type),
3917         response_text(o.response_text),
3918         score(o.score),
3919         serialized_entity_data(o.serialized_entity_data),
3920         priority_score(o.priority_score),
3921         entity_data((o.entity_data) ? new libtextclassifier3::ActionsEntityDataT(*o.entity_data) : nullptr),
3922         response_text_blocklist(o.response_text_blocklist) {
3923   concept_mappings.reserve(o.concept_mappings.size());
3924   for (const auto &concept_mappings_ : o.concept_mappings) { concept_mappings.emplace_back((concept_mappings_) ? new libtextclassifier3::ActionConceptToSuggestionT(*concept_mappings_) : nullptr); }
3925 }
3926 
3927 inline ActionSuggestionSpecT &ActionSuggestionSpecT::operator=(ActionSuggestionSpecT o) FLATBUFFERS_NOEXCEPT {
3928   std::swap(type, o.type);
3929   std::swap(response_text, o.response_text);
3930   std::swap(score, o.score);
3931   std::swap(serialized_entity_data, o.serialized_entity_data);
3932   std::swap(priority_score, o.priority_score);
3933   std::swap(entity_data, o.entity_data);
3934   std::swap(response_text_blocklist, o.response_text_blocklist);
3935   std::swap(concept_mappings, o.concept_mappings);
3936   return *this;
3937 }
3938 
UnPack(const flatbuffers::resolver_function_t * _resolver)3939 inline ActionSuggestionSpecT *ActionSuggestionSpec::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
3940   auto _o = std::unique_ptr<ActionSuggestionSpecT>(new ActionSuggestionSpecT());
3941   UnPackTo(_o.get(), _resolver);
3942   return _o.release();
3943 }
3944 
UnPackTo(ActionSuggestionSpecT * _o,const flatbuffers::resolver_function_t * _resolver)3945 inline void ActionSuggestionSpec::UnPackTo(ActionSuggestionSpecT *_o, const flatbuffers::resolver_function_t *_resolver) const {
3946   (void)_o;
3947   (void)_resolver;
3948   { auto _e = type(); if (_e) _o->type = _e->str(); }
3949   { auto _e = response_text(); if (_e) _o->response_text = _e->str(); }
3950   { auto _e = score(); _o->score = _e; }
3951   { auto _e = serialized_entity_data(); if (_e) _o->serialized_entity_data = _e->str(); }
3952   { auto _e = priority_score(); _o->priority_score = _e; }
3953   { auto _e = entity_data(); if (_e) _o->entity_data = std::unique_ptr<libtextclassifier3::ActionsEntityDataT>(_e->UnPack(_resolver)); }
3954   { auto _e = response_text_blocklist(); if (_e) { _o->response_text_blocklist.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->response_text_blocklist[_i] = _e->Get(_i)->str(); } } }
3955   { auto _e = concept_mappings(); if (_e) { _o->concept_mappings.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->concept_mappings[_i] = std::unique_ptr<libtextclassifier3::ActionConceptToSuggestionT>(_e->Get(_i)->UnPack(_resolver)); } } }
3956 }
3957 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ActionSuggestionSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)3958 inline flatbuffers::Offset<ActionSuggestionSpec> ActionSuggestionSpec::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionSuggestionSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
3959   return CreateActionSuggestionSpec(_fbb, _o, _rehasher);
3960 }
3961 
CreateActionSuggestionSpec(flatbuffers::FlatBufferBuilder & _fbb,const ActionSuggestionSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)3962 inline flatbuffers::Offset<ActionSuggestionSpec> CreateActionSuggestionSpec(flatbuffers::FlatBufferBuilder &_fbb, const ActionSuggestionSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
3963   (void)_rehasher;
3964   (void)_o;
3965   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ActionSuggestionSpecT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
3966   auto _type = _o->type.empty() ? 0 : _fbb.CreateSharedString(_o->type);
3967   auto _response_text = _o->response_text.empty() ? 0 : _fbb.CreateSharedString(_o->response_text);
3968   auto _score = _o->score;
3969   auto _serialized_entity_data = _o->serialized_entity_data.empty() ? 0 : _fbb.CreateSharedString(_o->serialized_entity_data);
3970   auto _priority_score = _o->priority_score;
3971   auto _entity_data = _o->entity_data ? CreateActionsEntityData(_fbb, _o->entity_data.get(), _rehasher) : 0;
3972   auto _response_text_blocklist = _o->response_text_blocklist.size() ? _fbb.CreateVectorOfStrings(_o->response_text_blocklist) : 0;
3973   auto _concept_mappings = _o->concept_mappings.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::ActionConceptToSuggestion>> (_o->concept_mappings.size(), [](size_t i, _VectorArgs *__va) { return CreateActionConceptToSuggestion(*__va->__fbb, __va->__o->concept_mappings[i].get(), __va->__rehasher); }, &_va ) : 0;
3974   return libtextclassifier3::CreateActionSuggestionSpec(
3975       _fbb,
3976       _type,
3977       _response_text,
3978       _score,
3979       _serialized_entity_data,
3980       _priority_score,
3981       _entity_data,
3982       _response_text_blocklist,
3983       _concept_mappings);
3984 }
3985 
ActionTypeOptionsT(const ActionTypeOptionsT & o)3986 inline ActionTypeOptionsT::ActionTypeOptionsT(const ActionTypeOptionsT &o)
3987       : name(o.name),
3988         enabled(o.enabled),
3989         min_triggering_score(o.min_triggering_score),
3990         action((o.action) ? new libtextclassifier3::ActionSuggestionSpecT(*o.action) : nullptr) {
3991 }
3992 
3993 inline ActionTypeOptionsT &ActionTypeOptionsT::operator=(ActionTypeOptionsT o) FLATBUFFERS_NOEXCEPT {
3994   std::swap(name, o.name);
3995   std::swap(enabled, o.enabled);
3996   std::swap(min_triggering_score, o.min_triggering_score);
3997   std::swap(action, o.action);
3998   return *this;
3999 }
4000 
UnPack(const flatbuffers::resolver_function_t * _resolver)4001 inline ActionTypeOptionsT *ActionTypeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4002   auto _o = std::unique_ptr<ActionTypeOptionsT>(new ActionTypeOptionsT());
4003   UnPackTo(_o.get(), _resolver);
4004   return _o.release();
4005 }
4006 
UnPackTo(ActionTypeOptionsT * _o,const flatbuffers::resolver_function_t * _resolver)4007 inline void ActionTypeOptions::UnPackTo(ActionTypeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4008   (void)_o;
4009   (void)_resolver;
4010   { auto _e = name(); if (_e) _o->name = _e->str(); }
4011   { auto _e = enabled(); _o->enabled = _e; }
4012   { auto _e = min_triggering_score(); _o->min_triggering_score = _e; }
4013   { auto _e = action(); if (_e) _o->action = std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT>(_e->UnPack(_resolver)); }
4014 }
4015 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ActionTypeOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)4016 inline flatbuffers::Offset<ActionTypeOptions> ActionTypeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionTypeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4017   return CreateActionTypeOptions(_fbb, _o, _rehasher);
4018 }
4019 
CreateActionTypeOptions(flatbuffers::FlatBufferBuilder & _fbb,const ActionTypeOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)4020 inline flatbuffers::Offset<ActionTypeOptions> CreateActionTypeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ActionTypeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4021   (void)_rehasher;
4022   (void)_o;
4023   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ActionTypeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4024   auto _name = _o->name.empty() ? 0 : _fbb.CreateSharedString(_o->name);
4025   auto _enabled = _o->enabled;
4026   auto _min_triggering_score = _o->min_triggering_score;
4027   auto _action = _o->action ? CreateActionSuggestionSpec(_fbb, _o->action.get(), _rehasher) : 0;
4028   return libtextclassifier3::CreateActionTypeOptions(
4029       _fbb,
4030       _name,
4031       _enabled,
4032       _min_triggering_score,
4033       _action);
4034 }
4035 
4036 namespace AnnotationActionsSpec_ {
4037 
AnnotationMappingT(const AnnotationMappingT & o)4038 inline AnnotationMappingT::AnnotationMappingT(const AnnotationMappingT &o)
4039       : annotation_collection(o.annotation_collection),
4040         action((o.action) ? new libtextclassifier3::ActionSuggestionSpecT(*o.action) : nullptr),
4041         use_annotation_score(o.use_annotation_score),
4042         min_annotation_score(o.min_annotation_score),
4043         entity_field((o.entity_field) ? new libtextclassifier3::FlatbufferFieldPathT(*o.entity_field) : nullptr),
4044         normalization_options((o.normalization_options) ? new libtextclassifier3::NormalizationOptionsT(*o.normalization_options) : nullptr) {
4045 }
4046 
4047 inline AnnotationMappingT &AnnotationMappingT::operator=(AnnotationMappingT o) FLATBUFFERS_NOEXCEPT {
4048   std::swap(annotation_collection, o.annotation_collection);
4049   std::swap(action, o.action);
4050   std::swap(use_annotation_score, o.use_annotation_score);
4051   std::swap(min_annotation_score, o.min_annotation_score);
4052   std::swap(entity_field, o.entity_field);
4053   std::swap(normalization_options, o.normalization_options);
4054   return *this;
4055 }
4056 
UnPack(const flatbuffers::resolver_function_t * _resolver)4057 inline AnnotationMappingT *AnnotationMapping::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4058   auto _o = std::unique_ptr<AnnotationMappingT>(new AnnotationMappingT());
4059   UnPackTo(_o.get(), _resolver);
4060   return _o.release();
4061 }
4062 
UnPackTo(AnnotationMappingT * _o,const flatbuffers::resolver_function_t * _resolver)4063 inline void AnnotationMapping::UnPackTo(AnnotationMappingT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4064   (void)_o;
4065   (void)_resolver;
4066   { auto _e = annotation_collection(); if (_e) _o->annotation_collection = _e->str(); }
4067   { auto _e = action(); if (_e) _o->action = std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT>(_e->UnPack(_resolver)); }
4068   { auto _e = use_annotation_score(); _o->use_annotation_score = _e; }
4069   { auto _e = min_annotation_score(); _o->min_annotation_score = _e; }
4070   { auto _e = entity_field(); if (_e) _o->entity_field = std::unique_ptr<libtextclassifier3::FlatbufferFieldPathT>(_e->UnPack(_resolver)); }
4071   { auto _e = normalization_options(); if (_e) _o->normalization_options = std::unique_ptr<libtextclassifier3::NormalizationOptionsT>(_e->UnPack(_resolver)); }
4072 }
4073 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationMappingT * _o,const flatbuffers::rehasher_function_t * _rehasher)4074 inline flatbuffers::Offset<AnnotationMapping> AnnotationMapping::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationMappingT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4075   return CreateAnnotationMapping(_fbb, _o, _rehasher);
4076 }
4077 
CreateAnnotationMapping(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationMappingT * _o,const flatbuffers::rehasher_function_t * _rehasher)4078 inline flatbuffers::Offset<AnnotationMapping> CreateAnnotationMapping(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationMappingT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4079   (void)_rehasher;
4080   (void)_o;
4081   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AnnotationMappingT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4082   auto _annotation_collection = _o->annotation_collection.empty() ? 0 : _fbb.CreateSharedString(_o->annotation_collection);
4083   auto _action = _o->action ? CreateActionSuggestionSpec(_fbb, _o->action.get(), _rehasher) : 0;
4084   auto _use_annotation_score = _o->use_annotation_score;
4085   auto _min_annotation_score = _o->min_annotation_score;
4086   auto _entity_field = _o->entity_field ? CreateFlatbufferFieldPath(_fbb, _o->entity_field.get(), _rehasher) : 0;
4087   auto _normalization_options = _o->normalization_options ? CreateNormalizationOptions(_fbb, _o->normalization_options.get(), _rehasher) : 0;
4088   return libtextclassifier3::AnnotationActionsSpec_::CreateAnnotationMapping(
4089       _fbb,
4090       _annotation_collection,
4091       _action,
4092       _use_annotation_score,
4093       _min_annotation_score,
4094       _entity_field,
4095       _normalization_options);
4096 }
4097 
4098 }  // namespace AnnotationActionsSpec_
4099 
AnnotationActionsSpecT(const AnnotationActionsSpecT & o)4100 inline AnnotationActionsSpecT::AnnotationActionsSpecT(const AnnotationActionsSpecT &o)
4101       : deduplicate_annotations(o.deduplicate_annotations),
4102         annotation_usecase(o.annotation_usecase),
4103         max_history_from_any_person(o.max_history_from_any_person),
4104         max_history_from_last_person(o.max_history_from_last_person),
4105         include_local_user_messages(o.include_local_user_messages),
4106         only_until_last_sent(o.only_until_last_sent),
4107         is_serialized_entity_data_enabled(o.is_serialized_entity_data_enabled) {
4108   annotation_mapping.reserve(o.annotation_mapping.size());
4109   for (const auto &annotation_mapping_ : o.annotation_mapping) { annotation_mapping.emplace_back((annotation_mapping_) ? new libtextclassifier3::AnnotationActionsSpec_::AnnotationMappingT(*annotation_mapping_) : nullptr); }
4110 }
4111 
4112 inline AnnotationActionsSpecT &AnnotationActionsSpecT::operator=(AnnotationActionsSpecT o) FLATBUFFERS_NOEXCEPT {
4113   std::swap(annotation_mapping, o.annotation_mapping);
4114   std::swap(deduplicate_annotations, o.deduplicate_annotations);
4115   std::swap(annotation_usecase, o.annotation_usecase);
4116   std::swap(max_history_from_any_person, o.max_history_from_any_person);
4117   std::swap(max_history_from_last_person, o.max_history_from_last_person);
4118   std::swap(include_local_user_messages, o.include_local_user_messages);
4119   std::swap(only_until_last_sent, o.only_until_last_sent);
4120   std::swap(is_serialized_entity_data_enabled, o.is_serialized_entity_data_enabled);
4121   return *this;
4122 }
4123 
UnPack(const flatbuffers::resolver_function_t * _resolver)4124 inline AnnotationActionsSpecT *AnnotationActionsSpec::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4125   auto _o = std::unique_ptr<AnnotationActionsSpecT>(new AnnotationActionsSpecT());
4126   UnPackTo(_o.get(), _resolver);
4127   return _o.release();
4128 }
4129 
UnPackTo(AnnotationActionsSpecT * _o,const flatbuffers::resolver_function_t * _resolver)4130 inline void AnnotationActionsSpec::UnPackTo(AnnotationActionsSpecT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4131   (void)_o;
4132   (void)_resolver;
4133   { auto _e = annotation_mapping(); if (_e) { _o->annotation_mapping.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->annotation_mapping[_i] = std::unique_ptr<libtextclassifier3::AnnotationActionsSpec_::AnnotationMappingT>(_e->Get(_i)->UnPack(_resolver)); } } }
4134   { auto _e = deduplicate_annotations(); _o->deduplicate_annotations = _e; }
4135   { auto _e = annotation_usecase(); _o->annotation_usecase = _e; }
4136   { auto _e = max_history_from_any_person(); _o->max_history_from_any_person = _e; }
4137   { auto _e = max_history_from_last_person(); _o->max_history_from_last_person = _e; }
4138   { auto _e = include_local_user_messages(); _o->include_local_user_messages = _e; }
4139   { auto _e = only_until_last_sent(); _o->only_until_last_sent = _e; }
4140   { auto _e = is_serialized_entity_data_enabled(); _o->is_serialized_entity_data_enabled = _e; }
4141 }
4142 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationActionsSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)4143 inline flatbuffers::Offset<AnnotationActionsSpec> AnnotationActionsSpec::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationActionsSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4144   return CreateAnnotationActionsSpec(_fbb, _o, _rehasher);
4145 }
4146 
CreateAnnotationActionsSpec(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationActionsSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)4147 inline flatbuffers::Offset<AnnotationActionsSpec> CreateAnnotationActionsSpec(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationActionsSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4148   (void)_rehasher;
4149   (void)_o;
4150   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AnnotationActionsSpecT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4151   auto _annotation_mapping = _o->annotation_mapping.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::AnnotationActionsSpec_::AnnotationMapping>> (_o->annotation_mapping.size(), [](size_t i, _VectorArgs *__va) { return CreateAnnotationMapping(*__va->__fbb, __va->__o->annotation_mapping[i].get(), __va->__rehasher); }, &_va ) : 0;
4152   auto _deduplicate_annotations = _o->deduplicate_annotations;
4153   auto _annotation_usecase = _o->annotation_usecase;
4154   auto _max_history_from_any_person = _o->max_history_from_any_person;
4155   auto _max_history_from_last_person = _o->max_history_from_last_person;
4156   auto _include_local_user_messages = _o->include_local_user_messages;
4157   auto _only_until_last_sent = _o->only_until_last_sent;
4158   auto _is_serialized_entity_data_enabled = _o->is_serialized_entity_data_enabled;
4159   return libtextclassifier3::CreateAnnotationActionsSpec(
4160       _fbb,
4161       _annotation_mapping,
4162       _deduplicate_annotations,
4163       _annotation_usecase,
4164       _max_history_from_any_person,
4165       _max_history_from_last_person,
4166       _include_local_user_messages,
4167       _only_until_last_sent,
4168       _is_serialized_entity_data_enabled);
4169 }
4170 
RankingOptionsT(const RankingOptionsT & o)4171 inline RankingOptionsT::RankingOptionsT(const RankingOptionsT &o)
4172       : deduplicate_suggestions(o.deduplicate_suggestions),
4173         deduplicate_suggestions_by_span(o.deduplicate_suggestions_by_span),
4174         lua_ranking_script(o.lua_ranking_script),
4175         compressed_lua_ranking_script((o.compressed_lua_ranking_script) ? new libtextclassifier3::CompressedBufferT(*o.compressed_lua_ranking_script) : nullptr),
4176         suppress_smart_replies_with_actions(o.suppress_smart_replies_with_actions),
4177         group_by_annotations(o.group_by_annotations),
4178         sort_type(o.sort_type) {
4179 }
4180 
4181 inline RankingOptionsT &RankingOptionsT::operator=(RankingOptionsT o) FLATBUFFERS_NOEXCEPT {
4182   std::swap(deduplicate_suggestions, o.deduplicate_suggestions);
4183   std::swap(deduplicate_suggestions_by_span, o.deduplicate_suggestions_by_span);
4184   std::swap(lua_ranking_script, o.lua_ranking_script);
4185   std::swap(compressed_lua_ranking_script, o.compressed_lua_ranking_script);
4186   std::swap(suppress_smart_replies_with_actions, o.suppress_smart_replies_with_actions);
4187   std::swap(group_by_annotations, o.group_by_annotations);
4188   std::swap(sort_type, o.sort_type);
4189   return *this;
4190 }
4191 
UnPack(const flatbuffers::resolver_function_t * _resolver)4192 inline RankingOptionsT *RankingOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4193   auto _o = std::unique_ptr<RankingOptionsT>(new RankingOptionsT());
4194   UnPackTo(_o.get(), _resolver);
4195   return _o.release();
4196 }
4197 
UnPackTo(RankingOptionsT * _o,const flatbuffers::resolver_function_t * _resolver)4198 inline void RankingOptions::UnPackTo(RankingOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4199   (void)_o;
4200   (void)_resolver;
4201   { auto _e = deduplicate_suggestions(); _o->deduplicate_suggestions = _e; }
4202   { auto _e = deduplicate_suggestions_by_span(); _o->deduplicate_suggestions_by_span = _e; }
4203   { auto _e = lua_ranking_script(); if (_e) _o->lua_ranking_script = _e->str(); }
4204   { auto _e = compressed_lua_ranking_script(); if (_e) _o->compressed_lua_ranking_script = std::unique_ptr<libtextclassifier3::CompressedBufferT>(_e->UnPack(_resolver)); }
4205   { auto _e = suppress_smart_replies_with_actions(); _o->suppress_smart_replies_with_actions = _e; }
4206   { auto _e = group_by_annotations(); _o->group_by_annotations = _e; }
4207   { auto _e = sort_type(); _o->sort_type = _e; }
4208 }
4209 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RankingOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)4210 inline flatbuffers::Offset<RankingOptions> RankingOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RankingOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4211   return CreateRankingOptions(_fbb, _o, _rehasher);
4212 }
4213 
CreateRankingOptions(flatbuffers::FlatBufferBuilder & _fbb,const RankingOptionsT * _o,const flatbuffers::rehasher_function_t * _rehasher)4214 inline flatbuffers::Offset<RankingOptions> CreateRankingOptions(flatbuffers::FlatBufferBuilder &_fbb, const RankingOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4215   (void)_rehasher;
4216   (void)_o;
4217   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RankingOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4218   auto _deduplicate_suggestions = _o->deduplicate_suggestions;
4219   auto _deduplicate_suggestions_by_span = _o->deduplicate_suggestions_by_span;
4220   auto _lua_ranking_script = _o->lua_ranking_script.empty() ? 0 : _fbb.CreateSharedString(_o->lua_ranking_script);
4221   auto _compressed_lua_ranking_script = _o->compressed_lua_ranking_script ? CreateCompressedBuffer(_fbb, _o->compressed_lua_ranking_script.get(), _rehasher) : 0;
4222   auto _suppress_smart_replies_with_actions = _o->suppress_smart_replies_with_actions;
4223   auto _group_by_annotations = _o->group_by_annotations;
4224   auto _sort_type = _o->sort_type;
4225   return libtextclassifier3::CreateRankingOptions(
4226       _fbb,
4227       _deduplicate_suggestions,
4228       _deduplicate_suggestions_by_span,
4229       _lua_ranking_script,
4230       _compressed_lua_ranking_script,
4231       _suppress_smart_replies_with_actions,
4232       _group_by_annotations,
4233       _sort_type);
4234 }
4235 
4236 namespace RulesModel_ {
4237 namespace RuleActionSpec_ {
4238 
RuleCapturingGroupT(const RuleCapturingGroupT & o)4239 inline RuleCapturingGroupT::RuleCapturingGroupT(const RuleCapturingGroupT &o)
4240       : group_id(o.group_id),
4241         entity_field((o.entity_field) ? new libtextclassifier3::FlatbufferFieldPathT(*o.entity_field) : nullptr),
4242         annotation_type(o.annotation_type),
4243         annotation_name(o.annotation_name),
4244         text_reply((o.text_reply) ? new libtextclassifier3::ActionSuggestionSpecT(*o.text_reply) : nullptr),
4245         normalization_options((o.normalization_options) ? new libtextclassifier3::NormalizationOptionsT(*o.normalization_options) : nullptr),
4246         use_annotation_match(o.use_annotation_match),
4247         entity_data((o.entity_data) ? new libtextclassifier3::ActionsEntityDataT(*o.entity_data) : nullptr) {
4248 }
4249 
4250 inline RuleCapturingGroupT &RuleCapturingGroupT::operator=(RuleCapturingGroupT o) FLATBUFFERS_NOEXCEPT {
4251   std::swap(group_id, o.group_id);
4252   std::swap(entity_field, o.entity_field);
4253   std::swap(annotation_type, o.annotation_type);
4254   std::swap(annotation_name, o.annotation_name);
4255   std::swap(text_reply, o.text_reply);
4256   std::swap(normalization_options, o.normalization_options);
4257   std::swap(use_annotation_match, o.use_annotation_match);
4258   std::swap(entity_data, o.entity_data);
4259   return *this;
4260 }
4261 
UnPack(const flatbuffers::resolver_function_t * _resolver)4262 inline RuleCapturingGroupT *RuleCapturingGroup::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4263   auto _o = std::unique_ptr<RuleCapturingGroupT>(new RuleCapturingGroupT());
4264   UnPackTo(_o.get(), _resolver);
4265   return _o.release();
4266 }
4267 
UnPackTo(RuleCapturingGroupT * _o,const flatbuffers::resolver_function_t * _resolver)4268 inline void RuleCapturingGroup::UnPackTo(RuleCapturingGroupT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4269   (void)_o;
4270   (void)_resolver;
4271   { auto _e = group_id(); _o->group_id = _e; }
4272   { auto _e = entity_field(); if (_e) _o->entity_field = std::unique_ptr<libtextclassifier3::FlatbufferFieldPathT>(_e->UnPack(_resolver)); }
4273   { auto _e = annotation_type(); if (_e) _o->annotation_type = _e->str(); }
4274   { auto _e = annotation_name(); if (_e) _o->annotation_name = _e->str(); }
4275   { auto _e = text_reply(); if (_e) _o->text_reply = std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT>(_e->UnPack(_resolver)); }
4276   { auto _e = normalization_options(); if (_e) _o->normalization_options = std::unique_ptr<libtextclassifier3::NormalizationOptionsT>(_e->UnPack(_resolver)); }
4277   { auto _e = use_annotation_match(); _o->use_annotation_match = _e; }
4278   { auto _e = entity_data(); if (_e) _o->entity_data = std::unique_ptr<libtextclassifier3::ActionsEntityDataT>(_e->UnPack(_resolver)); }
4279 }
4280 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RuleCapturingGroupT * _o,const flatbuffers::rehasher_function_t * _rehasher)4281 inline flatbuffers::Offset<RuleCapturingGroup> RuleCapturingGroup::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RuleCapturingGroupT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4282   return CreateRuleCapturingGroup(_fbb, _o, _rehasher);
4283 }
4284 
CreateRuleCapturingGroup(flatbuffers::FlatBufferBuilder & _fbb,const RuleCapturingGroupT * _o,const flatbuffers::rehasher_function_t * _rehasher)4285 inline flatbuffers::Offset<RuleCapturingGroup> CreateRuleCapturingGroup(flatbuffers::FlatBufferBuilder &_fbb, const RuleCapturingGroupT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4286   (void)_rehasher;
4287   (void)_o;
4288   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RuleCapturingGroupT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4289   auto _group_id = _o->group_id;
4290   auto _entity_field = _o->entity_field ? CreateFlatbufferFieldPath(_fbb, _o->entity_field.get(), _rehasher) : 0;
4291   auto _annotation_type = _o->annotation_type.empty() ? 0 : _fbb.CreateSharedString(_o->annotation_type);
4292   auto _annotation_name = _o->annotation_name.empty() ? 0 : _fbb.CreateSharedString(_o->annotation_name);
4293   auto _text_reply = _o->text_reply ? CreateActionSuggestionSpec(_fbb, _o->text_reply.get(), _rehasher) : 0;
4294   auto _normalization_options = _o->normalization_options ? CreateNormalizationOptions(_fbb, _o->normalization_options.get(), _rehasher) : 0;
4295   auto _use_annotation_match = _o->use_annotation_match;
4296   auto _entity_data = _o->entity_data ? CreateActionsEntityData(_fbb, _o->entity_data.get(), _rehasher) : 0;
4297   return libtextclassifier3::RulesModel_::RuleActionSpec_::CreateRuleCapturingGroup(
4298       _fbb,
4299       _group_id,
4300       _entity_field,
4301       _annotation_type,
4302       _annotation_name,
4303       _text_reply,
4304       _normalization_options,
4305       _use_annotation_match,
4306       _entity_data);
4307 }
4308 
4309 }  // namespace RuleActionSpec_
4310 
RuleActionSpecT(const RuleActionSpecT & o)4311 inline RuleActionSpecT::RuleActionSpecT(const RuleActionSpecT &o)
4312       : action((o.action) ? new libtextclassifier3::ActionSuggestionSpecT(*o.action) : nullptr) {
4313   capturing_group.reserve(o.capturing_group.size());
4314   for (const auto &capturing_group_ : o.capturing_group) { capturing_group.emplace_back((capturing_group_) ? new libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroupT(*capturing_group_) : nullptr); }
4315 }
4316 
4317 inline RuleActionSpecT &RuleActionSpecT::operator=(RuleActionSpecT o) FLATBUFFERS_NOEXCEPT {
4318   std::swap(action, o.action);
4319   std::swap(capturing_group, o.capturing_group);
4320   return *this;
4321 }
4322 
UnPack(const flatbuffers::resolver_function_t * _resolver)4323 inline RuleActionSpecT *RuleActionSpec::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4324   auto _o = std::unique_ptr<RuleActionSpecT>(new RuleActionSpecT());
4325   UnPackTo(_o.get(), _resolver);
4326   return _o.release();
4327 }
4328 
UnPackTo(RuleActionSpecT * _o,const flatbuffers::resolver_function_t * _resolver)4329 inline void RuleActionSpec::UnPackTo(RuleActionSpecT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4330   (void)_o;
4331   (void)_resolver;
4332   { auto _e = action(); if (_e) _o->action = std::unique_ptr<libtextclassifier3::ActionSuggestionSpecT>(_e->UnPack(_resolver)); }
4333   { auto _e = capturing_group(); if (_e) { _o->capturing_group.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->capturing_group[_i] = std::unique_ptr<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroupT>(_e->Get(_i)->UnPack(_resolver)); } } }
4334 }
4335 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RuleActionSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)4336 inline flatbuffers::Offset<RuleActionSpec> RuleActionSpec::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RuleActionSpecT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4337   return CreateRuleActionSpec(_fbb, _o, _rehasher);
4338 }
4339 
CreateRuleActionSpec(flatbuffers::FlatBufferBuilder & _fbb,const RuleActionSpecT * _o,const flatbuffers::rehasher_function_t * _rehasher)4340 inline flatbuffers::Offset<RuleActionSpec> CreateRuleActionSpec(flatbuffers::FlatBufferBuilder &_fbb, const RuleActionSpecT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4341   (void)_rehasher;
4342   (void)_o;
4343   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RuleActionSpecT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4344   auto _action = _o->action ? CreateActionSuggestionSpec(_fbb, _o->action.get(), _rehasher) : 0;
4345   auto _capturing_group = _o->capturing_group.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec_::RuleCapturingGroup>> (_o->capturing_group.size(), [](size_t i, _VectorArgs *__va) { return CreateRuleCapturingGroup(*__va->__fbb, __va->__o->capturing_group[i].get(), __va->__rehasher); }, &_va ) : 0;
4346   return libtextclassifier3::RulesModel_::CreateRuleActionSpec(
4347       _fbb,
4348       _action,
4349       _capturing_group);
4350 }
4351 
RegexRuleT(const RegexRuleT & o)4352 inline RegexRuleT::RegexRuleT(const RegexRuleT &o)
4353       : pattern(o.pattern),
4354         compressed_pattern((o.compressed_pattern) ? new libtextclassifier3::CompressedBufferT(*o.compressed_pattern) : nullptr),
4355         output_pattern(o.output_pattern),
4356         compressed_output_pattern((o.compressed_output_pattern) ? new libtextclassifier3::CompressedBufferT(*o.compressed_output_pattern) : nullptr) {
4357   actions.reserve(o.actions.size());
4358   for (const auto &actions_ : o.actions) { actions.emplace_back((actions_) ? new libtextclassifier3::RulesModel_::RuleActionSpecT(*actions_) : nullptr); }
4359 }
4360 
4361 inline RegexRuleT &RegexRuleT::operator=(RegexRuleT o) FLATBUFFERS_NOEXCEPT {
4362   std::swap(pattern, o.pattern);
4363   std::swap(compressed_pattern, o.compressed_pattern);
4364   std::swap(actions, o.actions);
4365   std::swap(output_pattern, o.output_pattern);
4366   std::swap(compressed_output_pattern, o.compressed_output_pattern);
4367   return *this;
4368 }
4369 
UnPack(const flatbuffers::resolver_function_t * _resolver)4370 inline RegexRuleT *RegexRule::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4371   auto _o = std::unique_ptr<RegexRuleT>(new RegexRuleT());
4372   UnPackTo(_o.get(), _resolver);
4373   return _o.release();
4374 }
4375 
UnPackTo(RegexRuleT * _o,const flatbuffers::resolver_function_t * _resolver)4376 inline void RegexRule::UnPackTo(RegexRuleT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4377   (void)_o;
4378   (void)_resolver;
4379   { auto _e = pattern(); if (_e) _o->pattern = _e->str(); }
4380   { auto _e = compressed_pattern(); if (_e) _o->compressed_pattern = std::unique_ptr<libtextclassifier3::CompressedBufferT>(_e->UnPack(_resolver)); }
4381   { auto _e = actions(); if (_e) { _o->actions.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->actions[_i] = std::unique_ptr<libtextclassifier3::RulesModel_::RuleActionSpecT>(_e->Get(_i)->UnPack(_resolver)); } } }
4382   { auto _e = output_pattern(); if (_e) _o->output_pattern = _e->str(); }
4383   { auto _e = compressed_output_pattern(); if (_e) _o->compressed_output_pattern = std::unique_ptr<libtextclassifier3::CompressedBufferT>(_e->UnPack(_resolver)); }
4384 }
4385 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RegexRuleT * _o,const flatbuffers::rehasher_function_t * _rehasher)4386 inline flatbuffers::Offset<RegexRule> RegexRule::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegexRuleT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4387   return CreateRegexRule(_fbb, _o, _rehasher);
4388 }
4389 
CreateRegexRule(flatbuffers::FlatBufferBuilder & _fbb,const RegexRuleT * _o,const flatbuffers::rehasher_function_t * _rehasher)4390 inline flatbuffers::Offset<RegexRule> CreateRegexRule(flatbuffers::FlatBufferBuilder &_fbb, const RegexRuleT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4391   (void)_rehasher;
4392   (void)_o;
4393   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RegexRuleT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4394   auto _pattern = _o->pattern.empty() ? 0 : _fbb.CreateSharedString(_o->pattern);
4395   auto _compressed_pattern = _o->compressed_pattern ? CreateCompressedBuffer(_fbb, _o->compressed_pattern.get(), _rehasher) : 0;
4396   auto _actions = _o->actions.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> (_o->actions.size(), [](size_t i, _VectorArgs *__va) { return CreateRuleActionSpec(*__va->__fbb, __va->__o->actions[i].get(), __va->__rehasher); }, &_va ) : 0;
4397   auto _output_pattern = _o->output_pattern.empty() ? 0 : _fbb.CreateSharedString(_o->output_pattern);
4398   auto _compressed_output_pattern = _o->compressed_output_pattern ? CreateCompressedBuffer(_fbb, _o->compressed_output_pattern.get(), _rehasher) : 0;
4399   return libtextclassifier3::RulesModel_::CreateRegexRule(
4400       _fbb,
4401       _pattern,
4402       _compressed_pattern,
4403       _actions,
4404       _output_pattern,
4405       _compressed_output_pattern);
4406 }
4407 
4408 namespace GrammarRules_ {
4409 
UnPack(const flatbuffers::resolver_function_t * _resolver)4410 inline RuleMatchT *RuleMatch::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4411   auto _o = std::unique_ptr<RuleMatchT>(new RuleMatchT());
4412   UnPackTo(_o.get(), _resolver);
4413   return _o.release();
4414 }
4415 
UnPackTo(RuleMatchT * _o,const flatbuffers::resolver_function_t * _resolver)4416 inline void RuleMatch::UnPackTo(RuleMatchT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4417   (void)_o;
4418   (void)_resolver;
4419   { auto _e = action_id(); if (_e) { _o->action_id.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->action_id[_i] = _e->Get(_i); } } }
4420 }
4421 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RuleMatchT * _o,const flatbuffers::rehasher_function_t * _rehasher)4422 inline flatbuffers::Offset<RuleMatch> RuleMatch::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RuleMatchT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4423   return CreateRuleMatch(_fbb, _o, _rehasher);
4424 }
4425 
CreateRuleMatch(flatbuffers::FlatBufferBuilder & _fbb,const RuleMatchT * _o,const flatbuffers::rehasher_function_t * _rehasher)4426 inline flatbuffers::Offset<RuleMatch> CreateRuleMatch(flatbuffers::FlatBufferBuilder &_fbb, const RuleMatchT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4427   (void)_rehasher;
4428   (void)_o;
4429   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RuleMatchT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4430   auto _action_id = _o->action_id.size() ? _fbb.CreateVector(_o->action_id) : 0;
4431   return libtextclassifier3::RulesModel_::GrammarRules_::CreateRuleMatch(
4432       _fbb,
4433       _action_id);
4434 }
4435 
4436 }  // namespace GrammarRules_
4437 
GrammarRulesT(const GrammarRulesT & o)4438 inline GrammarRulesT::GrammarRulesT(const GrammarRulesT &o)
4439       : tokenizer_options((o.tokenizer_options) ? new libtextclassifier3::ActionsTokenizerOptionsT(*o.tokenizer_options) : nullptr),
4440         rules((o.rules) ? new libtextclassifier3::grammar::RulesSetT(*o.rules) : nullptr) {
4441   rule_match.reserve(o.rule_match.size());
4442   for (const auto &rule_match_ : o.rule_match) { rule_match.emplace_back((rule_match_) ? new libtextclassifier3::RulesModel_::GrammarRules_::RuleMatchT(*rule_match_) : nullptr); }
4443   actions.reserve(o.actions.size());
4444   for (const auto &actions_ : o.actions) { actions.emplace_back((actions_) ? new libtextclassifier3::RulesModel_::RuleActionSpecT(*actions_) : nullptr); }
4445 }
4446 
4447 inline GrammarRulesT &GrammarRulesT::operator=(GrammarRulesT o) FLATBUFFERS_NOEXCEPT {
4448   std::swap(tokenizer_options, o.tokenizer_options);
4449   std::swap(rules, o.rules);
4450   std::swap(rule_match, o.rule_match);
4451   std::swap(actions, o.actions);
4452   return *this;
4453 }
4454 
UnPack(const flatbuffers::resolver_function_t * _resolver)4455 inline GrammarRulesT *GrammarRules::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4456   auto _o = std::unique_ptr<GrammarRulesT>(new GrammarRulesT());
4457   UnPackTo(_o.get(), _resolver);
4458   return _o.release();
4459 }
4460 
UnPackTo(GrammarRulesT * _o,const flatbuffers::resolver_function_t * _resolver)4461 inline void GrammarRules::UnPackTo(GrammarRulesT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4462   (void)_o;
4463   (void)_resolver;
4464   { auto _e = tokenizer_options(); if (_e) _o->tokenizer_options = std::unique_ptr<libtextclassifier3::ActionsTokenizerOptionsT>(_e->UnPack(_resolver)); }
4465   { auto _e = rules(); if (_e) _o->rules = std::unique_ptr<libtextclassifier3::grammar::RulesSetT>(_e->UnPack(_resolver)); }
4466   { auto _e = rule_match(); if (_e) { _o->rule_match.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->rule_match[_i] = std::unique_ptr<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatchT>(_e->Get(_i)->UnPack(_resolver)); } } }
4467   { auto _e = actions(); if (_e) { _o->actions.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->actions[_i] = std::unique_ptr<libtextclassifier3::RulesModel_::RuleActionSpecT>(_e->Get(_i)->UnPack(_resolver)); } } }
4468 }
4469 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const GrammarRulesT * _o,const flatbuffers::rehasher_function_t * _rehasher)4470 inline flatbuffers::Offset<GrammarRules> GrammarRules::Pack(flatbuffers::FlatBufferBuilder &_fbb, const GrammarRulesT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4471   return CreateGrammarRules(_fbb, _o, _rehasher);
4472 }
4473 
CreateGrammarRules(flatbuffers::FlatBufferBuilder & _fbb,const GrammarRulesT * _o,const flatbuffers::rehasher_function_t * _rehasher)4474 inline flatbuffers::Offset<GrammarRules> CreateGrammarRules(flatbuffers::FlatBufferBuilder &_fbb, const GrammarRulesT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4475   (void)_rehasher;
4476   (void)_o;
4477   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const GrammarRulesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4478   auto _tokenizer_options = _o->tokenizer_options ? CreateActionsTokenizerOptions(_fbb, _o->tokenizer_options.get(), _rehasher) : 0;
4479   auto _rules = _o->rules ? CreateRulesSet(_fbb, _o->rules.get(), _rehasher) : 0;
4480   auto _rule_match = _o->rule_match.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::GrammarRules_::RuleMatch>> (_o->rule_match.size(), [](size_t i, _VectorArgs *__va) { return CreateRuleMatch(*__va->__fbb, __va->__o->rule_match[i].get(), __va->__rehasher); }, &_va ) : 0;
4481   auto _actions = _o->actions.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RuleActionSpec>> (_o->actions.size(), [](size_t i, _VectorArgs *__va) { return CreateRuleActionSpec(*__va->__fbb, __va->__o->actions[i].get(), __va->__rehasher); }, &_va ) : 0;
4482   return libtextclassifier3::RulesModel_::CreateGrammarRules(
4483       _fbb,
4484       _tokenizer_options,
4485       _rules,
4486       _rule_match,
4487       _actions);
4488 }
4489 
4490 }  // namespace RulesModel_
4491 
RulesModelT(const RulesModelT & o)4492 inline RulesModelT::RulesModelT(const RulesModelT &o)
4493       : lazy_regex_compilation(o.lazy_regex_compilation),
4494         grammar_rules((o.grammar_rules) ? new libtextclassifier3::RulesModel_::GrammarRulesT(*o.grammar_rules) : nullptr) {
4495   regex_rule.reserve(o.regex_rule.size());
4496   for (const auto &regex_rule_ : o.regex_rule) { regex_rule.emplace_back((regex_rule_) ? new libtextclassifier3::RulesModel_::RegexRuleT(*regex_rule_) : nullptr); }
4497 }
4498 
4499 inline RulesModelT &RulesModelT::operator=(RulesModelT o) FLATBUFFERS_NOEXCEPT {
4500   std::swap(regex_rule, o.regex_rule);
4501   std::swap(lazy_regex_compilation, o.lazy_regex_compilation);
4502   std::swap(grammar_rules, o.grammar_rules);
4503   return *this;
4504 }
4505 
UnPack(const flatbuffers::resolver_function_t * _resolver)4506 inline RulesModelT *RulesModel::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4507   auto _o = std::unique_ptr<RulesModelT>(new RulesModelT());
4508   UnPackTo(_o.get(), _resolver);
4509   return _o.release();
4510 }
4511 
UnPackTo(RulesModelT * _o,const flatbuffers::resolver_function_t * _resolver)4512 inline void RulesModel::UnPackTo(RulesModelT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4513   (void)_o;
4514   (void)_resolver;
4515   { auto _e = regex_rule(); if (_e) { _o->regex_rule.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->regex_rule[_i] = std::unique_ptr<libtextclassifier3::RulesModel_::RegexRuleT>(_e->Get(_i)->UnPack(_resolver)); } } }
4516   { auto _e = lazy_regex_compilation(); _o->lazy_regex_compilation = _e; }
4517   { auto _e = grammar_rules(); if (_e) _o->grammar_rules = std::unique_ptr<libtextclassifier3::RulesModel_::GrammarRulesT>(_e->UnPack(_resolver)); }
4518 }
4519 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RulesModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)4520 inline flatbuffers::Offset<RulesModel> RulesModel::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RulesModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4521   return CreateRulesModel(_fbb, _o, _rehasher);
4522 }
4523 
CreateRulesModel(flatbuffers::FlatBufferBuilder & _fbb,const RulesModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)4524 inline flatbuffers::Offset<RulesModel> CreateRulesModel(flatbuffers::FlatBufferBuilder &_fbb, const RulesModelT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4525   (void)_rehasher;
4526   (void)_o;
4527   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RulesModelT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4528   auto _regex_rule = _o->regex_rule.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::RulesModel_::RegexRule>> (_o->regex_rule.size(), [](size_t i, _VectorArgs *__va) { return CreateRegexRule(*__va->__fbb, __va->__o->regex_rule[i].get(), __va->__rehasher); }, &_va ) : 0;
4529   auto _lazy_regex_compilation = _o->lazy_regex_compilation;
4530   auto _grammar_rules = _o->grammar_rules ? CreateGrammarRules(_fbb, _o->grammar_rules.get(), _rehasher) : 0;
4531   return libtextclassifier3::CreateRulesModel(
4532       _fbb,
4533       _regex_rule,
4534       _lazy_regex_compilation,
4535       _grammar_rules);
4536 }
4537 
ActionsModelT(const ActionsModelT & o)4538 inline ActionsModelT::ActionsModelT(const ActionsModelT &o)
4539       : locales(o.locales),
4540         version(o.version),
4541         name(o.name),
4542         tflite_model_spec((o.tflite_model_spec) ? new libtextclassifier3::TensorflowLiteModelSpecT(*o.tflite_model_spec) : nullptr),
4543         smart_reply_action_type(o.smart_reply_action_type),
4544         preconditions((o.preconditions) ? new libtextclassifier3::TriggeringPreconditionsT(*o.preconditions) : nullptr),
4545         num_smart_replies(o.num_smart_replies),
4546         max_conversation_history_length(o.max_conversation_history_length),
4547         annotation_actions_spec((o.annotation_actions_spec) ? new libtextclassifier3::AnnotationActionsSpecT(*o.annotation_actions_spec) : nullptr),
4548         rules((o.rules) ? new libtextclassifier3::RulesModelT(*o.rules) : nullptr),
4549         android_intent_options((o.android_intent_options) ? new libtextclassifier3::IntentFactoryModelT(*o.android_intent_options) : nullptr),
4550         resources((o.resources) ? new libtextclassifier3::ResourcePoolT(*o.resources) : nullptr),
4551         actions_entity_data_schema(o.actions_entity_data_schema),
4552         ranking_options((o.ranking_options) ? new libtextclassifier3::RankingOptionsT(*o.ranking_options) : nullptr),
4553         lua_actions_script(o.lua_actions_script),
4554         compressed_lua_actions_script((o.compressed_lua_actions_script) ? new libtextclassifier3::CompressedBufferT(*o.compressed_lua_actions_script) : nullptr),
4555         low_confidence_rules((o.low_confidence_rules) ? new libtextclassifier3::RulesModelT(*o.low_confidence_rules) : nullptr),
4556         low_confidence_ngram_model((o.low_confidence_ngram_model) ? new libtextclassifier3::NGramLinearRegressionModelT(*o.low_confidence_ngram_model) : nullptr),
4557         feature_processor_options((o.feature_processor_options) ? new libtextclassifier3::ActionsTokenFeatureProcessorOptionsT(*o.feature_processor_options) : nullptr),
4558         low_confidence_tflite_model((o.low_confidence_tflite_model) ? new libtextclassifier3::TFLiteSensitiveClassifierConfigT(*o.low_confidence_tflite_model) : nullptr) {
4559   action_type.reserve(o.action_type.size());
4560   for (const auto &action_type_ : o.action_type) { action_type.emplace_back((action_type_) ? new libtextclassifier3::ActionTypeOptionsT(*action_type_) : nullptr); }
4561 }
4562 
4563 inline ActionsModelT &ActionsModelT::operator=(ActionsModelT o) FLATBUFFERS_NOEXCEPT {
4564   std::swap(locales, o.locales);
4565   std::swap(version, o.version);
4566   std::swap(name, o.name);
4567   std::swap(tflite_model_spec, o.tflite_model_spec);
4568   std::swap(smart_reply_action_type, o.smart_reply_action_type);
4569   std::swap(action_type, o.action_type);
4570   std::swap(preconditions, o.preconditions);
4571   std::swap(num_smart_replies, o.num_smart_replies);
4572   std::swap(max_conversation_history_length, o.max_conversation_history_length);
4573   std::swap(annotation_actions_spec, o.annotation_actions_spec);
4574   std::swap(rules, o.rules);
4575   std::swap(android_intent_options, o.android_intent_options);
4576   std::swap(resources, o.resources);
4577   std::swap(actions_entity_data_schema, o.actions_entity_data_schema);
4578   std::swap(ranking_options, o.ranking_options);
4579   std::swap(lua_actions_script, o.lua_actions_script);
4580   std::swap(compressed_lua_actions_script, o.compressed_lua_actions_script);
4581   std::swap(low_confidence_rules, o.low_confidence_rules);
4582   std::swap(low_confidence_ngram_model, o.low_confidence_ngram_model);
4583   std::swap(feature_processor_options, o.feature_processor_options);
4584   std::swap(low_confidence_tflite_model, o.low_confidence_tflite_model);
4585   return *this;
4586 }
4587 
UnPack(const flatbuffers::resolver_function_t * _resolver)4588 inline ActionsModelT *ActionsModel::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
4589   auto _o = std::unique_ptr<ActionsModelT>(new ActionsModelT());
4590   UnPackTo(_o.get(), _resolver);
4591   return _o.release();
4592 }
4593 
UnPackTo(ActionsModelT * _o,const flatbuffers::resolver_function_t * _resolver)4594 inline void ActionsModel::UnPackTo(ActionsModelT *_o, const flatbuffers::resolver_function_t *_resolver) const {
4595   (void)_o;
4596   (void)_resolver;
4597   { auto _e = locales(); if (_e) _o->locales = _e->str(); }
4598   { auto _e = version(); _o->version = _e; }
4599   { auto _e = name(); if (_e) _o->name = _e->str(); }
4600   { auto _e = tflite_model_spec(); if (_e) _o->tflite_model_spec = std::unique_ptr<libtextclassifier3::TensorflowLiteModelSpecT>(_e->UnPack(_resolver)); }
4601   { auto _e = smart_reply_action_type(); if (_e) _o->smart_reply_action_type = _e->str(); }
4602   { auto _e = action_type(); if (_e) { _o->action_type.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->action_type[_i] = std::unique_ptr<libtextclassifier3::ActionTypeOptionsT>(_e->Get(_i)->UnPack(_resolver)); } } }
4603   { auto _e = preconditions(); if (_e) _o->preconditions = std::unique_ptr<libtextclassifier3::TriggeringPreconditionsT>(_e->UnPack(_resolver)); }
4604   { auto _e = num_smart_replies(); _o->num_smart_replies = _e; }
4605   { auto _e = max_conversation_history_length(); _o->max_conversation_history_length = _e; }
4606   { auto _e = annotation_actions_spec(); if (_e) _o->annotation_actions_spec = std::unique_ptr<libtextclassifier3::AnnotationActionsSpecT>(_e->UnPack(_resolver)); }
4607   { auto _e = rules(); if (_e) _o->rules = std::unique_ptr<libtextclassifier3::RulesModelT>(_e->UnPack(_resolver)); }
4608   { auto _e = android_intent_options(); if (_e) _o->android_intent_options = std::unique_ptr<libtextclassifier3::IntentFactoryModelT>(_e->UnPack(_resolver)); }
4609   { auto _e = resources(); if (_e) _o->resources = std::unique_ptr<libtextclassifier3::ResourcePoolT>(_e->UnPack(_resolver)); }
4610   { auto _e = actions_entity_data_schema(); if (_e) { _o->actions_entity_data_schema.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->actions_entity_data_schema.begin()); } }
4611   { auto _e = ranking_options(); if (_e) _o->ranking_options = std::unique_ptr<libtextclassifier3::RankingOptionsT>(_e->UnPack(_resolver)); }
4612   { auto _e = lua_actions_script(); if (_e) _o->lua_actions_script = _e->str(); }
4613   { auto _e = compressed_lua_actions_script(); if (_e) _o->compressed_lua_actions_script = std::unique_ptr<libtextclassifier3::CompressedBufferT>(_e->UnPack(_resolver)); }
4614   { auto _e = low_confidence_rules(); if (_e) _o->low_confidence_rules = std::unique_ptr<libtextclassifier3::RulesModelT>(_e->UnPack(_resolver)); }
4615   { auto _e = low_confidence_ngram_model(); if (_e) _o->low_confidence_ngram_model = std::unique_ptr<libtextclassifier3::NGramLinearRegressionModelT>(_e->UnPack(_resolver)); }
4616   { auto _e = feature_processor_options(); if (_e) _o->feature_processor_options = std::unique_ptr<libtextclassifier3::ActionsTokenFeatureProcessorOptionsT>(_e->UnPack(_resolver)); }
4617   { auto _e = low_confidence_tflite_model(); if (_e) _o->low_confidence_tflite_model = std::unique_ptr<libtextclassifier3::TFLiteSensitiveClassifierConfigT>(_e->UnPack(_resolver)); }
4618 }
4619 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ActionsModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)4620 inline flatbuffers::Offset<ActionsModel> ActionsModel::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ActionsModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
4621   return CreateActionsModel(_fbb, _o, _rehasher);
4622 }
4623 
CreateActionsModel(flatbuffers::FlatBufferBuilder & _fbb,const ActionsModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)4624 inline flatbuffers::Offset<ActionsModel> CreateActionsModel(flatbuffers::FlatBufferBuilder &_fbb, const ActionsModelT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
4625   (void)_rehasher;
4626   (void)_o;
4627   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ActionsModelT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
4628   auto _locales = _o->locales.empty() ? 0 : _fbb.CreateSharedString(_o->locales);
4629   auto _version = _o->version;
4630   auto _name = _o->name.empty() ? 0 : _fbb.CreateSharedString(_o->name);
4631   auto _tflite_model_spec = _o->tflite_model_spec ? CreateTensorflowLiteModelSpec(_fbb, _o->tflite_model_spec.get(), _rehasher) : 0;
4632   auto _smart_reply_action_type = _o->smart_reply_action_type.empty() ? 0 : _fbb.CreateSharedString(_o->smart_reply_action_type);
4633   auto _action_type = _o->action_type.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::ActionTypeOptions>> (_o->action_type.size(), [](size_t i, _VectorArgs *__va) { return CreateActionTypeOptions(*__va->__fbb, __va->__o->action_type[i].get(), __va->__rehasher); }, &_va ) : 0;
4634   auto _preconditions = _o->preconditions ? CreateTriggeringPreconditions(_fbb, _o->preconditions.get(), _rehasher) : 0;
4635   auto _num_smart_replies = _o->num_smart_replies;
4636   auto _max_conversation_history_length = _o->max_conversation_history_length;
4637   auto _annotation_actions_spec = _o->annotation_actions_spec ? CreateAnnotationActionsSpec(_fbb, _o->annotation_actions_spec.get(), _rehasher) : 0;
4638   auto _rules = _o->rules ? CreateRulesModel(_fbb, _o->rules.get(), _rehasher) : 0;
4639   auto _android_intent_options = _o->android_intent_options ? CreateIntentFactoryModel(_fbb, _o->android_intent_options.get(), _rehasher) : 0;
4640   auto _resources = _o->resources ? CreateResourcePool(_fbb, _o->resources.get(), _rehasher) : 0;
4641   auto _actions_entity_data_schema = _o->actions_entity_data_schema.size() ? _fbb.CreateVector(_o->actions_entity_data_schema) : 0;
4642   auto _ranking_options = _o->ranking_options ? CreateRankingOptions(_fbb, _o->ranking_options.get(), _rehasher) : 0;
4643   auto _lua_actions_script = _o->lua_actions_script.empty() ? 0 : _fbb.CreateSharedString(_o->lua_actions_script);
4644   auto _compressed_lua_actions_script = _o->compressed_lua_actions_script ? CreateCompressedBuffer(_fbb, _o->compressed_lua_actions_script.get(), _rehasher) : 0;
4645   auto _low_confidence_rules = _o->low_confidence_rules ? CreateRulesModel(_fbb, _o->low_confidence_rules.get(), _rehasher) : 0;
4646   auto _low_confidence_ngram_model = _o->low_confidence_ngram_model ? CreateNGramLinearRegressionModel(_fbb, _o->low_confidence_ngram_model.get(), _rehasher) : 0;
4647   auto _feature_processor_options = _o->feature_processor_options ? CreateActionsTokenFeatureProcessorOptions(_fbb, _o->feature_processor_options.get(), _rehasher) : 0;
4648   auto _low_confidence_tflite_model = _o->low_confidence_tflite_model ? CreateTFLiteSensitiveClassifierConfig(_fbb, _o->low_confidence_tflite_model.get(), _rehasher) : 0;
4649   return libtextclassifier3::CreateActionsModel(
4650       _fbb,
4651       _locales,
4652       _version,
4653       _name,
4654       _tflite_model_spec,
4655       _smart_reply_action_type,
4656       _action_type,
4657       _preconditions,
4658       _num_smart_replies,
4659       _max_conversation_history_length,
4660       _annotation_actions_spec,
4661       _rules,
4662       _android_intent_options,
4663       _resources,
4664       _actions_entity_data_schema,
4665       _ranking_options,
4666       _lua_actions_script,
4667       _compressed_lua_actions_script,
4668       _low_confidence_rules,
4669       _low_confidence_ngram_model,
4670       _feature_processor_options,
4671       _low_confidence_tflite_model);
4672 }
4673 
GetActionsModel(const void * buf)4674 inline const libtextclassifier3::ActionsModel *GetActionsModel(const void *buf) {
4675   return flatbuffers::GetRoot<libtextclassifier3::ActionsModel>(buf);
4676 }
4677 
GetSizePrefixedActionsModel(const void * buf)4678 inline const libtextclassifier3::ActionsModel *GetSizePrefixedActionsModel(const void *buf) {
4679   return flatbuffers::GetSizePrefixedRoot<libtextclassifier3::ActionsModel>(buf);
4680 }
4681 
ActionsModelIdentifier()4682 inline const char *ActionsModelIdentifier() {
4683   return "TC3A";
4684 }
4685 
ActionsModelBufferHasIdentifier(const void * buf)4686 inline bool ActionsModelBufferHasIdentifier(const void *buf) {
4687   return flatbuffers::BufferHasIdentifier(
4688       buf, ActionsModelIdentifier());
4689 }
4690 
SizePrefixedActionsModelBufferHasIdentifier(const void * buf)4691 inline bool SizePrefixedActionsModelBufferHasIdentifier(const void *buf) {
4692   return flatbuffers::BufferHasIdentifier(
4693       buf, ActionsModelIdentifier(), true);
4694 }
4695 
VerifyActionsModelBuffer(flatbuffers::Verifier & verifier)4696 inline bool VerifyActionsModelBuffer(
4697     flatbuffers::Verifier &verifier) {
4698   return verifier.VerifyBuffer<libtextclassifier3::ActionsModel>(ActionsModelIdentifier());
4699 }
4700 
VerifySizePrefixedActionsModelBuffer(flatbuffers::Verifier & verifier)4701 inline bool VerifySizePrefixedActionsModelBuffer(
4702     flatbuffers::Verifier &verifier) {
4703   return verifier.VerifySizePrefixedBuffer<libtextclassifier3::ActionsModel>(ActionsModelIdentifier());
4704 }
4705 
FinishActionsModelBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<libtextclassifier3::ActionsModel> root)4706 inline void FinishActionsModelBuffer(
4707     flatbuffers::FlatBufferBuilder &fbb,
4708     flatbuffers::Offset<libtextclassifier3::ActionsModel> root) {
4709   fbb.Finish(root, ActionsModelIdentifier());
4710 }
4711 
FinishSizePrefixedActionsModelBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<libtextclassifier3::ActionsModel> root)4712 inline void FinishSizePrefixedActionsModelBuffer(
4713     flatbuffers::FlatBufferBuilder &fbb,
4714     flatbuffers::Offset<libtextclassifier3::ActionsModel> root) {
4715   fbb.FinishSizePrefixed(root, ActionsModelIdentifier());
4716 }
4717 
4718 inline std::unique_ptr<libtextclassifier3::ActionsModelT> UnPackActionsModel(
4719     const void *buf,
4720     const flatbuffers::resolver_function_t *res = nullptr) {
4721   return std::unique_ptr<libtextclassifier3::ActionsModelT>(GetActionsModel(buf)->UnPack(res));
4722 }
4723 
4724 inline std::unique_ptr<libtextclassifier3::ActionsModelT> UnPackSizePrefixedActionsModel(
4725     const void *buf,
4726     const flatbuffers::resolver_function_t *res = nullptr) {
4727   return std::unique_ptr<libtextclassifier3::ActionsModelT>(GetSizePrefixedActionsModel(buf)->UnPack(res));
4728 }
4729 
4730 }  // namespace libtextclassifier3
4731 
4732 #endif  // FLATBUFFERS_GENERATED_ACTIONSMODEL_LIBTEXTCLASSIFIER3_H_
4733