1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_MODEL_LIBTEXTCLASSIFIER3_SAFT_FBS_H_
5 #define FLATBUFFERS_GENERATED_MODEL_LIBTEXTCLASSIFIER3_SAFT_FBS_H_
6 
7 #include "flatbuffers/flatbuffers.h"
8 
9 // Ensure the included flatbuffers.h is the same version as when this file was
10 // generated, otherwise it may not be compatible.
11 static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
12               FLATBUFFERS_VERSION_MINOR == 0 &&
13               FLATBUFFERS_VERSION_REVISION == 7,
14              "Non-compatible flatbuffers version included");
15 
16 namespace libtextclassifier3 {
17 namespace saft_fbs {
18 
19 struct ModelParameter;
20 struct ModelParameterBuilder;
21 struct ModelParameterT;
22 
23 struct ModelInput;
24 struct ModelInputBuilder;
25 struct ModelInputT;
26 
27 struct Model;
28 struct ModelBuilder;
29 struct ModelT;
30 
31 struct ModelParameterT : public flatbuffers::NativeTable {
32   typedef ModelParameter TableType;
33   std::string name{};
34   std::string value{};
35 };
36 
37 struct ModelParameter FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
38   typedef ModelParameterT NativeTableType;
39   typedef ModelParameterBuilder Builder;
40   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
41     VT_NAME = 4,
42     VT_VALUE = 6
43   };
nameFLATBUFFERS_FINAL_CLASS44   const flatbuffers::String *name() const {
45     return GetPointer<const flatbuffers::String *>(VT_NAME);
46   }
valueFLATBUFFERS_FINAL_CLASS47   const flatbuffers::String *value() const {
48     return GetPointer<const flatbuffers::String *>(VT_VALUE);
49   }
VerifyFLATBUFFERS_FINAL_CLASS50   bool Verify(flatbuffers::Verifier &verifier) const {
51     return VerifyTableStart(verifier) &&
52            VerifyOffset(verifier, VT_NAME) &&
53            verifier.VerifyString(name()) &&
54            VerifyOffset(verifier, VT_VALUE) &&
55            verifier.VerifyString(value()) &&
56            verifier.EndTable();
57   }
58   ModelParameterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
59   void UnPackTo(ModelParameterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
60   static flatbuffers::Offset<ModelParameter> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelParameterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
61 };
62 
63 struct ModelParameterBuilder {
64   typedef ModelParameter Table;
65   flatbuffers::FlatBufferBuilder &fbb_;
66   flatbuffers::uoffset_t start_;
add_nameModelParameterBuilder67   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
68     fbb_.AddOffset(ModelParameter::VT_NAME, name);
69   }
add_valueModelParameterBuilder70   void add_value(flatbuffers::Offset<flatbuffers::String> value) {
71     fbb_.AddOffset(ModelParameter::VT_VALUE, value);
72   }
ModelParameterBuilderModelParameterBuilder73   explicit ModelParameterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
74         : fbb_(_fbb) {
75     start_ = fbb_.StartTable();
76   }
FinishModelParameterBuilder77   flatbuffers::Offset<ModelParameter> Finish() {
78     const auto end = fbb_.EndTable(start_);
79     auto o = flatbuffers::Offset<ModelParameter>(end);
80     return o;
81   }
82 };
83 
84 inline flatbuffers::Offset<ModelParameter> CreateModelParameter(
85     flatbuffers::FlatBufferBuilder &_fbb,
86     flatbuffers::Offset<flatbuffers::String> name = 0,
87     flatbuffers::Offset<flatbuffers::String> value = 0) {
88   ModelParameterBuilder builder_(_fbb);
89   builder_.add_value(value);
90   builder_.add_name(name);
91   return builder_.Finish();
92 }
93 
94 inline flatbuffers::Offset<ModelParameter> CreateModelParameterDirect(
95     flatbuffers::FlatBufferBuilder &_fbb,
96     const char *name = nullptr,
97     const char *value = nullptr) {
98   auto name__ = name ? _fbb.CreateString(name) : 0;
99   auto value__ = value ? _fbb.CreateString(value) : 0;
100   return libtextclassifier3::saft_fbs::CreateModelParameter(
101       _fbb,
102       name__,
103       value__);
104 }
105 
106 flatbuffers::Offset<ModelParameter> CreateModelParameter(flatbuffers::FlatBufferBuilder &_fbb, const ModelParameterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
107 
108 struct ModelInputT : public flatbuffers::NativeTable {
109   typedef ModelInput TableType;
110   std::string name{};
111   std::string type{};
112   std::string sub_type{};
113   std::vector<uint8_t> data{};
114 };
115 
116 struct ModelInput FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
117   typedef ModelInputT NativeTableType;
118   typedef ModelInputBuilder Builder;
119   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
120     VT_NAME = 4,
121     VT_TYPE = 6,
122     VT_SUB_TYPE = 8,
123     VT_DATA = 10
124   };
nameFLATBUFFERS_FINAL_CLASS125   const flatbuffers::String *name() const {
126     return GetPointer<const flatbuffers::String *>(VT_NAME);
127   }
typeFLATBUFFERS_FINAL_CLASS128   const flatbuffers::String *type() const {
129     return GetPointer<const flatbuffers::String *>(VT_TYPE);
130   }
sub_typeFLATBUFFERS_FINAL_CLASS131   const flatbuffers::String *sub_type() const {
132     return GetPointer<const flatbuffers::String *>(VT_SUB_TYPE);
133   }
dataFLATBUFFERS_FINAL_CLASS134   const flatbuffers::Vector<uint8_t> *data() const {
135     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
136   }
VerifyFLATBUFFERS_FINAL_CLASS137   bool Verify(flatbuffers::Verifier &verifier) const {
138     return VerifyTableStart(verifier) &&
139            VerifyOffset(verifier, VT_NAME) &&
140            verifier.VerifyString(name()) &&
141            VerifyOffset(verifier, VT_TYPE) &&
142            verifier.VerifyString(type()) &&
143            VerifyOffset(verifier, VT_SUB_TYPE) &&
144            verifier.VerifyString(sub_type()) &&
145            VerifyOffset(verifier, VT_DATA) &&
146            verifier.VerifyVector(data()) &&
147            verifier.EndTable();
148   }
149   ModelInputT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
150   void UnPackTo(ModelInputT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
151   static flatbuffers::Offset<ModelInput> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelInputT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
152 };
153 
154 struct ModelInputBuilder {
155   typedef ModelInput Table;
156   flatbuffers::FlatBufferBuilder &fbb_;
157   flatbuffers::uoffset_t start_;
add_nameModelInputBuilder158   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
159     fbb_.AddOffset(ModelInput::VT_NAME, name);
160   }
add_typeModelInputBuilder161   void add_type(flatbuffers::Offset<flatbuffers::String> type) {
162     fbb_.AddOffset(ModelInput::VT_TYPE, type);
163   }
add_sub_typeModelInputBuilder164   void add_sub_type(flatbuffers::Offset<flatbuffers::String> sub_type) {
165     fbb_.AddOffset(ModelInput::VT_SUB_TYPE, sub_type);
166   }
add_dataModelInputBuilder167   void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
168     fbb_.AddOffset(ModelInput::VT_DATA, data);
169   }
ModelInputBuilderModelInputBuilder170   explicit ModelInputBuilder(flatbuffers::FlatBufferBuilder &_fbb)
171         : fbb_(_fbb) {
172     start_ = fbb_.StartTable();
173   }
FinishModelInputBuilder174   flatbuffers::Offset<ModelInput> Finish() {
175     const auto end = fbb_.EndTable(start_);
176     auto o = flatbuffers::Offset<ModelInput>(end);
177     return o;
178   }
179 };
180 
181 inline flatbuffers::Offset<ModelInput> CreateModelInput(
182     flatbuffers::FlatBufferBuilder &_fbb,
183     flatbuffers::Offset<flatbuffers::String> name = 0,
184     flatbuffers::Offset<flatbuffers::String> type = 0,
185     flatbuffers::Offset<flatbuffers::String> sub_type = 0,
186     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
187   ModelInputBuilder builder_(_fbb);
188   builder_.add_data(data);
189   builder_.add_sub_type(sub_type);
190   builder_.add_type(type);
191   builder_.add_name(name);
192   return builder_.Finish();
193 }
194 
195 inline flatbuffers::Offset<ModelInput> CreateModelInputDirect(
196     flatbuffers::FlatBufferBuilder &_fbb,
197     const char *name = nullptr,
198     const char *type = nullptr,
199     const char *sub_type = nullptr,
200     const std::vector<uint8_t> *data = nullptr) {
201   auto name__ = name ? _fbb.CreateString(name) : 0;
202   auto type__ = type ? _fbb.CreateString(type) : 0;
203   auto sub_type__ = sub_type ? _fbb.CreateString(sub_type) : 0;
204   if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 16); }
205   auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
206   return libtextclassifier3::saft_fbs::CreateModelInput(
207       _fbb,
208       name__,
209       type__,
210       sub_type__,
211       data__);
212 }
213 
214 flatbuffers::Offset<ModelInput> CreateModelInput(flatbuffers::FlatBufferBuilder &_fbb, const ModelInputT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
215 
216 struct ModelT : public flatbuffers::NativeTable {
217   typedef Model TableType;
218   std::vector<std::unique_ptr<libtextclassifier3::saft_fbs::ModelParameterT>> parameters{};
219   std::vector<std::unique_ptr<libtextclassifier3::saft_fbs::ModelInputT>> inputs{};
220   uint32_t crc32 = 0;
221   ModelT() = default;
222   ModelT(const ModelT &o);
223   ModelT(ModelT&&) FLATBUFFERS_NOEXCEPT = default;
224   ModelT &operator=(ModelT o) FLATBUFFERS_NOEXCEPT;
225 };
226 
227 struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
228   typedef ModelT NativeTableType;
229   typedef ModelBuilder Builder;
230   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
231     VT_PARAMETERS = 4,
232     VT_INPUTS = 6,
233     VT_CRC32 = 8
234   };
parametersFLATBUFFERS_FINAL_CLASS235   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>> *parameters() const {
236     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>> *>(VT_PARAMETERS);
237   }
inputsFLATBUFFERS_FINAL_CLASS238   const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>> *inputs() const {
239     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>> *>(VT_INPUTS);
240   }
crc32FLATBUFFERS_FINAL_CLASS241   uint32_t crc32() const {
242     return GetField<uint32_t>(VT_CRC32, 0);
243   }
VerifyFLATBUFFERS_FINAL_CLASS244   bool Verify(flatbuffers::Verifier &verifier) const {
245     return VerifyTableStart(verifier) &&
246            VerifyOffset(verifier, VT_PARAMETERS) &&
247            verifier.VerifyVector(parameters()) &&
248            verifier.VerifyVectorOfTables(parameters()) &&
249            VerifyOffset(verifier, VT_INPUTS) &&
250            verifier.VerifyVector(inputs()) &&
251            verifier.VerifyVectorOfTables(inputs()) &&
252            VerifyField<uint32_t>(verifier, VT_CRC32, 4) &&
253            verifier.EndTable();
254   }
255   ModelT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
256   void UnPackTo(ModelT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
257   static flatbuffers::Offset<Model> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
258 };
259 
260 struct ModelBuilder {
261   typedef Model Table;
262   flatbuffers::FlatBufferBuilder &fbb_;
263   flatbuffers::uoffset_t start_;
add_parametersModelBuilder264   void add_parameters(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>>> parameters) {
265     fbb_.AddOffset(Model::VT_PARAMETERS, parameters);
266   }
add_inputsModelBuilder267   void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>>> inputs) {
268     fbb_.AddOffset(Model::VT_INPUTS, inputs);
269   }
add_crc32ModelBuilder270   void add_crc32(uint32_t crc32) {
271     fbb_.AddElement<uint32_t>(Model::VT_CRC32, crc32, 0);
272   }
ModelBuilderModelBuilder273   explicit ModelBuilder(flatbuffers::FlatBufferBuilder &_fbb)
274         : fbb_(_fbb) {
275     start_ = fbb_.StartTable();
276   }
FinishModelBuilder277   flatbuffers::Offset<Model> Finish() {
278     const auto end = fbb_.EndTable(start_);
279     auto o = flatbuffers::Offset<Model>(end);
280     return o;
281   }
282 };
283 
284 inline flatbuffers::Offset<Model> CreateModel(
285     flatbuffers::FlatBufferBuilder &_fbb,
286     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>>> parameters = 0,
287     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>>> inputs = 0,
288     uint32_t crc32 = 0) {
289   ModelBuilder builder_(_fbb);
290   builder_.add_crc32(crc32);
291   builder_.add_inputs(inputs);
292   builder_.add_parameters(parameters);
293   return builder_.Finish();
294 }
295 
296 inline flatbuffers::Offset<Model> CreateModelDirect(
297     flatbuffers::FlatBufferBuilder &_fbb,
298     const std::vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>> *parameters = nullptr,
299     const std::vector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>> *inputs = nullptr,
300     uint32_t crc32 = 0) {
301   auto parameters__ = parameters ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>>(*parameters) : 0;
302   auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>>(*inputs) : 0;
303   return libtextclassifier3::saft_fbs::CreateModel(
304       _fbb,
305       parameters__,
306       inputs__,
307       crc32);
308 }
309 
310 flatbuffers::Offset<Model> CreateModel(flatbuffers::FlatBufferBuilder &_fbb, const ModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
311 
UnPack(const flatbuffers::resolver_function_t * _resolver)312 inline ModelParameterT *ModelParameter::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
313   auto _o = std::unique_ptr<ModelParameterT>(new ModelParameterT());
314   UnPackTo(_o.get(), _resolver);
315   return _o.release();
316 }
317 
UnPackTo(ModelParameterT * _o,const flatbuffers::resolver_function_t * _resolver)318 inline void ModelParameter::UnPackTo(ModelParameterT *_o, const flatbuffers::resolver_function_t *_resolver) const {
319   (void)_o;
320   (void)_resolver;
321   { auto _e = name(); if (_e) _o->name = _e->str(); }
322   { auto _e = value(); if (_e) _o->value = _e->str(); }
323 }
324 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ModelParameterT * _o,const flatbuffers::rehasher_function_t * _rehasher)325 inline flatbuffers::Offset<ModelParameter> ModelParameter::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelParameterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
326   return CreateModelParameter(_fbb, _o, _rehasher);
327 }
328 
CreateModelParameter(flatbuffers::FlatBufferBuilder & _fbb,const ModelParameterT * _o,const flatbuffers::rehasher_function_t * _rehasher)329 inline flatbuffers::Offset<ModelParameter> CreateModelParameter(flatbuffers::FlatBufferBuilder &_fbb, const ModelParameterT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
330   (void)_rehasher;
331   (void)_o;
332   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ModelParameterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
333   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
334   auto _value = _o->value.empty() ? 0 : _fbb.CreateString(_o->value);
335   return libtextclassifier3::saft_fbs::CreateModelParameter(
336       _fbb,
337       _name,
338       _value);
339 }
340 
UnPack(const flatbuffers::resolver_function_t * _resolver)341 inline ModelInputT *ModelInput::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
342   auto _o = std::unique_ptr<ModelInputT>(new ModelInputT());
343   UnPackTo(_o.get(), _resolver);
344   return _o.release();
345 }
346 
UnPackTo(ModelInputT * _o,const flatbuffers::resolver_function_t * _resolver)347 inline void ModelInput::UnPackTo(ModelInputT *_o, const flatbuffers::resolver_function_t *_resolver) const {
348   (void)_o;
349   (void)_resolver;
350   { auto _e = name(); if (_e) _o->name = _e->str(); }
351   { auto _e = type(); if (_e) _o->type = _e->str(); }
352   { auto _e = sub_type(); if (_e) _o->sub_type = _e->str(); }
353   { auto _e = data(); if (_e) { _o->data.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->data.begin()); } }
354 }
355 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ModelInputT * _o,const flatbuffers::rehasher_function_t * _rehasher)356 inline flatbuffers::Offset<ModelInput> ModelInput::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelInputT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
357   return CreateModelInput(_fbb, _o, _rehasher);
358 }
359 
CreateModelInput(flatbuffers::FlatBufferBuilder & _fbb,const ModelInputT * _o,const flatbuffers::rehasher_function_t * _rehasher)360 inline flatbuffers::Offset<ModelInput> CreateModelInput(flatbuffers::FlatBufferBuilder &_fbb, const ModelInputT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
361   (void)_rehasher;
362   (void)_o;
363   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ModelInputT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
364   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
365   auto _type = _o->type.empty() ? 0 : _fbb.CreateString(_o->type);
366   auto _sub_type = _o->sub_type.empty() ? 0 : _fbb.CreateString(_o->sub_type);
367   _fbb.ForceVectorAlignment(_o->data.size(), sizeof(uint8_t), 16);
368   auto _data = _o->data.size() ? _fbb.CreateVector(_o->data) : 0;
369   return libtextclassifier3::saft_fbs::CreateModelInput(
370       _fbb,
371       _name,
372       _type,
373       _sub_type,
374       _data);
375 }
376 
ModelT(const ModelT & o)377 inline ModelT::ModelT(const ModelT &o)
378       : crc32(o.crc32) {
379   parameters.reserve(o.parameters.size());
380   for (const auto &parameters_ : o.parameters) { parameters.emplace_back((parameters_) ? new libtextclassifier3::saft_fbs::ModelParameterT(*parameters_) : nullptr); }
381   inputs.reserve(o.inputs.size());
382   for (const auto &inputs_ : o.inputs) { inputs.emplace_back((inputs_) ? new libtextclassifier3::saft_fbs::ModelInputT(*inputs_) : nullptr); }
383 }
384 
385 inline ModelT &ModelT::operator=(ModelT o) FLATBUFFERS_NOEXCEPT {
386   std::swap(parameters, o.parameters);
387   std::swap(inputs, o.inputs);
388   std::swap(crc32, o.crc32);
389   return *this;
390 }
391 
UnPack(const flatbuffers::resolver_function_t * _resolver)392 inline ModelT *Model::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
393   auto _o = std::unique_ptr<ModelT>(new ModelT());
394   UnPackTo(_o.get(), _resolver);
395   return _o.release();
396 }
397 
UnPackTo(ModelT * _o,const flatbuffers::resolver_function_t * _resolver)398 inline void Model::UnPackTo(ModelT *_o, const flatbuffers::resolver_function_t *_resolver) const {
399   (void)_o;
400   (void)_resolver;
401   { auto _e = parameters(); if (_e) { _o->parameters.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->parameters[_i] = std::unique_ptr<libtextclassifier3::saft_fbs::ModelParameterT>(_e->Get(_i)->UnPack(_resolver)); } } }
402   { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = std::unique_ptr<libtextclassifier3::saft_fbs::ModelInputT>(_e->Get(_i)->UnPack(_resolver)); } } }
403   { auto _e = crc32(); _o->crc32 = _e; }
404 }
405 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)406 inline flatbuffers::Offset<Model> Model::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
407   return CreateModel(_fbb, _o, _rehasher);
408 }
409 
CreateModel(flatbuffers::FlatBufferBuilder & _fbb,const ModelT * _o,const flatbuffers::rehasher_function_t * _rehasher)410 inline flatbuffers::Offset<Model> CreateModel(flatbuffers::FlatBufferBuilder &_fbb, const ModelT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
411   (void)_rehasher;
412   (void)_o;
413   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ModelT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
414   auto _parameters = _o->parameters.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelParameter>> (_o->parameters.size(), [](size_t i, _VectorArgs *__va) { return CreateModelParameter(*__va->__fbb, __va->__o->parameters[i].get(), __va->__rehasher); }, &_va ) : 0;
415   auto _inputs = _o->inputs.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::saft_fbs::ModelInput>> (_o->inputs.size(), [](size_t i, _VectorArgs *__va) { return CreateModelInput(*__va->__fbb, __va->__o->inputs[i].get(), __va->__rehasher); }, &_va ) : 0;
416   auto _crc32 = _o->crc32;
417   return libtextclassifier3::saft_fbs::CreateModel(
418       _fbb,
419       _parameters,
420       _inputs,
421       _crc32);
422 }
423 
GetModel(const void * buf)424 inline const libtextclassifier3::saft_fbs::Model *GetModel(const void *buf) {
425   return flatbuffers::GetRoot<libtextclassifier3::saft_fbs::Model>(buf);
426 }
427 
GetSizePrefixedModel(const void * buf)428 inline const libtextclassifier3::saft_fbs::Model *GetSizePrefixedModel(const void *buf) {
429   return flatbuffers::GetSizePrefixedRoot<libtextclassifier3::saft_fbs::Model>(buf);
430 }
431 
ModelIdentifier()432 inline const char *ModelIdentifier() {
433   return "SM00";
434 }
435 
ModelBufferHasIdentifier(const void * buf)436 inline bool ModelBufferHasIdentifier(const void *buf) {
437   return flatbuffers::BufferHasIdentifier(
438       buf, ModelIdentifier());
439 }
440 
SizePrefixedModelBufferHasIdentifier(const void * buf)441 inline bool SizePrefixedModelBufferHasIdentifier(const void *buf) {
442   return flatbuffers::BufferHasIdentifier(
443       buf, ModelIdentifier(), true);
444 }
445 
VerifyModelBuffer(flatbuffers::Verifier & verifier)446 inline bool VerifyModelBuffer(
447     flatbuffers::Verifier &verifier) {
448   return verifier.VerifyBuffer<libtextclassifier3::saft_fbs::Model>(ModelIdentifier());
449 }
450 
VerifySizePrefixedModelBuffer(flatbuffers::Verifier & verifier)451 inline bool VerifySizePrefixedModelBuffer(
452     flatbuffers::Verifier &verifier) {
453   return verifier.VerifySizePrefixedBuffer<libtextclassifier3::saft_fbs::Model>(ModelIdentifier());
454 }
455 
ModelExtension()456 inline const char *ModelExtension() {
457   return "smfb";
458 }
459 
FinishModelBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<libtextclassifier3::saft_fbs::Model> root)460 inline void FinishModelBuffer(
461     flatbuffers::FlatBufferBuilder &fbb,
462     flatbuffers::Offset<libtextclassifier3::saft_fbs::Model> root) {
463   fbb.Finish(root, ModelIdentifier());
464 }
465 
FinishSizePrefixedModelBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<libtextclassifier3::saft_fbs::Model> root)466 inline void FinishSizePrefixedModelBuffer(
467     flatbuffers::FlatBufferBuilder &fbb,
468     flatbuffers::Offset<libtextclassifier3::saft_fbs::Model> root) {
469   fbb.FinishSizePrefixed(root, ModelIdentifier());
470 }
471 
472 inline std::unique_ptr<libtextclassifier3::saft_fbs::ModelT> UnPackModel(
473     const void *buf,
474     const flatbuffers::resolver_function_t *res = nullptr) {
475   return std::unique_ptr<libtextclassifier3::saft_fbs::ModelT>(GetModel(buf)->UnPack(res));
476 }
477 
478 inline std::unique_ptr<libtextclassifier3::saft_fbs::ModelT> UnPackSizePrefixedModel(
479     const void *buf,
480     const flatbuffers::resolver_function_t *res = nullptr) {
481   return std::unique_ptr<libtextclassifier3::saft_fbs::ModelT>(GetSizePrefixedModel(buf)->UnPack(res));
482 }
483 
484 }  // namespace saft_fbs
485 }  // namespace libtextclassifier3
486 
487 #endif  // FLATBUFFERS_GENERATED_MODEL_LIBTEXTCLASSIFIER3_SAFT_FBS_H_
488