Coverage Report

Created: 2026-01-10 06:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/flatbuffers/include/flatbuffers/reflection_generated.h
Line
Count
Source
1
// automatically generated by the FlatBuffers compiler, do not modify
2
3
4
#ifndef FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_
5
#define FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_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 == 25 &&
12
              FLATBUFFERS_VERSION_MINOR == 12 &&
13
              FLATBUFFERS_VERSION_REVISION == 19,
14
             "Non-compatible flatbuffers version included");
15
16
namespace reflection {
17
18
struct Type;
19
struct TypeBuilder;
20
21
struct KeyValue;
22
struct KeyValueBuilder;
23
24
struct EnumVal;
25
struct EnumValBuilder;
26
27
struct Enum;
28
struct EnumBuilder;
29
30
struct Field;
31
struct FieldBuilder;
32
33
struct Object;
34
struct ObjectBuilder;
35
36
struct RPCCall;
37
struct RPCCallBuilder;
38
39
struct Service;
40
struct ServiceBuilder;
41
42
struct SchemaFile;
43
struct SchemaFileBuilder;
44
45
struct Schema;
46
struct SchemaBuilder;
47
48
enum BaseType {
49
  None = 0,
50
  UType = 1,
51
  Bool = 2,
52
  Byte = 3,
53
  UByte = 4,
54
  Short = 5,
55
  UShort = 6,
56
  Int = 7,
57
  UInt = 8,
58
  Long = 9,
59
  ULong = 10,
60
  Float = 11,
61
  Double = 12,
62
  String = 13,
63
  Vector = 14,
64
  Obj = 15,
65
  Union = 16,
66
  Array = 17,
67
  Vector64 = 18,
68
  MaxBaseType = 19
69
};
70
71
0
inline const BaseType (&EnumValuesBaseType())[20] {
72
0
  static const BaseType values[] = {
73
0
    None,
74
0
    UType,
75
0
    Bool,
76
0
    Byte,
77
0
    UByte,
78
0
    Short,
79
0
    UShort,
80
0
    Int,
81
0
    UInt,
82
0
    Long,
83
0
    ULong,
84
0
    Float,
85
0
    Double,
86
0
    String,
87
0
    Vector,
88
0
    Obj,
89
0
    Union,
90
0
    Array,
91
0
    Vector64,
92
0
    MaxBaseType
93
0
  };
94
0
  return values;
95
0
}
96
97
0
inline const char * const *EnumNamesBaseType() {
98
0
  static const char * const names[21] = {
99
0
    "None",
100
0
    "UType",
101
0
    "Bool",
102
0
    "Byte",
103
0
    "UByte",
104
0
    "Short",
105
0
    "UShort",
106
0
    "Int",
107
0
    "UInt",
108
0
    "Long",
109
0
    "ULong",
110
0
    "Float",
111
0
    "Double",
112
0
    "String",
113
0
    "Vector",
114
0
    "Obj",
115
0
    "Union",
116
0
    "Array",
117
0
    "Vector64",
118
0
    "MaxBaseType",
119
0
    nullptr
120
0
  };
121
0
  return names;
122
0
}
123
124
0
inline const char *EnumNameBaseType(BaseType e) {
125
0
  if (::flatbuffers::IsOutRange(e, None, MaxBaseType)) return "";
126
0
  const size_t index = static_cast<size_t>(e);
127
0
  return EnumNamesBaseType()[index];
128
0
}
129
130
/// New schema language features that are not supported by old code generators.
131
enum AdvancedFeatures {
132
  AdvancedArrayFeatures = 1ULL,
133
  AdvancedUnionFeatures = 2ULL,
134
  OptionalScalars = 4ULL,
135
  DefaultVectorsAndStrings = 8ULL
136
};
137
138
0
inline const AdvancedFeatures (&EnumValuesAdvancedFeatures())[4] {
139
0
  static const AdvancedFeatures values[] = {
140
0
    AdvancedArrayFeatures,
141
0
    AdvancedUnionFeatures,
142
0
    OptionalScalars,
143
0
    DefaultVectorsAndStrings
144
0
  };
145
0
  return values;
146
0
}
147
148
0
inline const char * const *EnumNamesAdvancedFeatures() {
149
0
  static const char * const names[9] = {
150
0
    "AdvancedArrayFeatures",
151
0
    "AdvancedUnionFeatures",
152
0
    "",
153
0
    "OptionalScalars",
154
0
    "",
155
0
    "",
156
0
    "",
157
0
    "DefaultVectorsAndStrings",
158
0
    nullptr
159
0
  };
160
0
  return names;
161
0
}
162
163
0
inline const char *EnumNameAdvancedFeatures(AdvancedFeatures e) {
164
0
  if (::flatbuffers::IsOutRange(e, AdvancedArrayFeatures, DefaultVectorsAndStrings)) return "";
165
0
  const size_t index = static_cast<size_t>(e) - static_cast<size_t>(AdvancedArrayFeatures);
166
0
  return EnumNamesAdvancedFeatures()[index];
167
0
}
168
169
struct Type FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
170
  typedef TypeBuilder Builder;
171
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
172
    VT_BASE_TYPE = 4,
173
    VT_ELEMENT = 6,
174
    VT_INDEX = 8,
175
    VT_FIXED_LENGTH = 10,
176
    VT_BASE_SIZE = 12,
177
    VT_ELEMENT_SIZE = 14
178
  };
179
524
  reflection::BaseType base_type() const {
180
524
    return static_cast<reflection::BaseType>(GetField<int8_t>(VT_BASE_TYPE, 0));
181
524
  }
182
268
  reflection::BaseType element() const {
183
268
    return static_cast<reflection::BaseType>(GetField<int8_t>(VT_ELEMENT, 0));
184
268
  }
185
444
  int32_t index() const {
186
444
    return GetField<int32_t>(VT_INDEX, -1);
187
444
  }
188
252
  uint16_t fixed_length() const {
189
252
    return GetField<uint16_t>(VT_FIXED_LENGTH, 0);
190
252
  }
191
  /// The size (octets) of the `base_type` field.
192
0
  uint32_t base_size() const {
193
0
    return GetField<uint32_t>(VT_BASE_SIZE, 4);
194
0
  }
195
  /// The size (octets) of the `element` field, if present.
196
0
  uint32_t element_size() const {
197
0
    return GetField<uint32_t>(VT_ELEMENT_SIZE, 0);
198
0
  }
199
  template <bool B = false>
200
1.79k
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
201
1.79k
    return VerifyTableStart(verifier) &&
202
1.79k
           VerifyField<int8_t>(verifier, VT_BASE_TYPE, 1) &&
203
1.79k
           VerifyField<int8_t>(verifier, VT_ELEMENT, 1) &&
204
1.79k
           VerifyField<int32_t>(verifier, VT_INDEX, 4) &&
205
1.79k
           VerifyField<uint16_t>(verifier, VT_FIXED_LENGTH, 2) &&
206
1.79k
           VerifyField<uint32_t>(verifier, VT_BASE_SIZE, 4) &&
207
1.79k
           VerifyField<uint32_t>(verifier, VT_ELEMENT_SIZE, 4) &&
208
1.79k
           verifier.EndTable();
209
1.79k
  }
210
};
211
212
struct TypeBuilder {
213
  typedef Type Table;
214
  ::flatbuffers::FlatBufferBuilder &fbb_;
215
  ::flatbuffers::uoffset_t start_;
216
0
  void add_base_type(reflection::BaseType base_type) {
217
0
    fbb_.AddElement<int8_t>(Type::VT_BASE_TYPE, static_cast<int8_t>(base_type), 0);
218
0
  }
219
0
  void add_element(reflection::BaseType element) {
220
0
    fbb_.AddElement<int8_t>(Type::VT_ELEMENT, static_cast<int8_t>(element), 0);
221
0
  }
222
0
  void add_index(int32_t index) {
223
0
    fbb_.AddElement<int32_t>(Type::VT_INDEX, index, -1);
224
0
  }
225
0
  void add_fixed_length(uint16_t fixed_length) {
226
0
    fbb_.AddElement<uint16_t>(Type::VT_FIXED_LENGTH, fixed_length, 0);
227
0
  }
228
0
  void add_base_size(uint32_t base_size) {
229
0
    fbb_.AddElement<uint32_t>(Type::VT_BASE_SIZE, base_size, 4);
230
0
  }
231
0
  void add_element_size(uint32_t element_size) {
232
0
    fbb_.AddElement<uint32_t>(Type::VT_ELEMENT_SIZE, element_size, 0);
233
0
  }
234
  explicit TypeBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
235
0
        : fbb_(_fbb) {
236
0
    start_ = fbb_.StartTable();
237
0
  }
238
0
  ::flatbuffers::Offset<Type> Finish() {
239
0
    const auto end = fbb_.EndTable(start_);
240
0
    auto o = ::flatbuffers::Offset<Type>(end);
241
0
    return o;
242
0
  }
243
};
244
245
inline ::flatbuffers::Offset<Type> CreateType(
246
    ::flatbuffers::FlatBufferBuilder &_fbb,
247
    reflection::BaseType base_type = reflection::None,
248
    reflection::BaseType element = reflection::None,
249
    int32_t index = -1,
250
    uint16_t fixed_length = 0,
251
    uint32_t base_size = 4,
252
0
    uint32_t element_size = 0) {
253
0
  TypeBuilder builder_(_fbb);
254
0
  builder_.add_element_size(element_size);
255
0
  builder_.add_base_size(base_size);
256
0
  builder_.add_index(index);
257
0
  builder_.add_fixed_length(fixed_length);
258
0
  builder_.add_element(element);
259
0
  builder_.add_base_type(base_type);
260
0
  return builder_.Finish();
261
0
}
262
263
struct KeyValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
264
  typedef KeyValueBuilder Builder;
265
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
266
    VT_KEY = 4,
267
    VT_VALUE = 6
268
  };
269
2.95k
  const ::flatbuffers::String *key() const {
270
2.95k
    return GetPointer<const ::flatbuffers::String *>(VT_KEY);
271
2.95k
  }
272
0
  bool KeyCompareLessThan(const KeyValue * const o) const {
273
0
    return *key() < *o->key();
274
0
  }
275
0
  int KeyCompareWithValue(const char *_key) const {
276
0
    return strcmp(key()->c_str(), _key);
277
0
  }
278
  template<typename StringType>
279
  int KeyCompareWithValue(const StringType& _key) const {
280
    if (key()->c_str() < _key) return -1;
281
    if (_key < key()->c_str()) return 1;
282
    return 0;
283
  }
284
2.95k
  const ::flatbuffers::String *value() const {
285
2.95k
    return GetPointer<const ::flatbuffers::String *>(VT_VALUE);
286
2.95k
  }
287
  template <bool B = false>
288
2.49k
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
289
2.49k
    return VerifyTableStart(verifier) &&
290
2.49k
           VerifyOffsetRequired(verifier, VT_KEY) &&
291
2.49k
           verifier.VerifyString(key()) &&
292
2.49k
           VerifyOffset(verifier, VT_VALUE) &&
293
2.49k
           verifier.VerifyString(value()) &&
294
2.49k
           verifier.EndTable();
295
2.49k
  }
296
};
297
298
struct KeyValueBuilder {
299
  typedef KeyValue Table;
300
  ::flatbuffers::FlatBufferBuilder &fbb_;
301
  ::flatbuffers::uoffset_t start_;
302
0
  void add_key(::flatbuffers::Offset<::flatbuffers::String> key) {
303
0
    fbb_.AddOffset(KeyValue::VT_KEY, key);
304
0
  }
305
0
  void add_value(::flatbuffers::Offset<::flatbuffers::String> value) {
306
0
    fbb_.AddOffset(KeyValue::VT_VALUE, value);
307
0
  }
308
  explicit KeyValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
309
0
        : fbb_(_fbb) {
310
0
    start_ = fbb_.StartTable();
311
0
  }
312
0
  ::flatbuffers::Offset<KeyValue> Finish() {
313
0
    const auto end = fbb_.EndTable(start_);
314
0
    auto o = ::flatbuffers::Offset<KeyValue>(end);
315
0
    fbb_.Required(o, KeyValue::VT_KEY);
316
0
    return o;
317
0
  }
318
};
319
320
inline ::flatbuffers::Offset<KeyValue> CreateKeyValue(
321
    ::flatbuffers::FlatBufferBuilder &_fbb,
322
    ::flatbuffers::Offset<::flatbuffers::String> key = 0,
323
0
    ::flatbuffers::Offset<::flatbuffers::String> value = 0) {
324
0
  KeyValueBuilder builder_(_fbb);
325
0
  builder_.add_value(value);
326
0
  builder_.add_key(key);
327
0
  return builder_.Finish();
328
0
}
329
330
inline ::flatbuffers::Offset<KeyValue> CreateKeyValueDirect(
331
    ::flatbuffers::FlatBufferBuilder &_fbb,
332
    const char *key = nullptr,
333
0
    const char *value = nullptr) {
334
0
  auto key__ = key ? _fbb.CreateString(key) : 0;
335
0
  auto value__ = value ? _fbb.CreateString(value) : 0;
336
0
  return reflection::CreateKeyValue(
337
0
      _fbb,
338
0
      key__,
339
0
      value__);
340
0
}
341
342
struct EnumVal FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
343
  typedef EnumValBuilder Builder;
344
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
345
    VT_NAME = 4,
346
    VT_VALUE = 6,
347
    VT_UNION_TYPE = 10,
348
    VT_DOCUMENTATION = 12,
349
    VT_ATTRIBUTES = 14
350
  };
351
138
  const ::flatbuffers::String *name() const {
352
138
    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
353
138
  }
354
46
  int64_t value() const {
355
46
    return GetField<int64_t>(VT_VALUE, 0);
356
46
  }
357
0
  bool KeyCompareLessThan(const EnumVal * const o) const {
358
0
    return value() < o->value();
359
0
  }
360
0
  int KeyCompareWithValue(int64_t _value) const {
361
0
    return static_cast<int>(value() > _value) - static_cast<int>(value() < _value);
362
0
  }
363
138
  const reflection::Type *union_type() const {
364
138
    return GetPointer<const reflection::Type *>(VT_UNION_TYPE);
365
138
  }
366
230
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
367
230
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
368
230
  }
369
230
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
370
230
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
371
230
  }
372
  template <bool B = false>
373
92
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
374
92
    return VerifyTableStart(verifier) &&
375
92
           VerifyOffsetRequired(verifier, VT_NAME) &&
376
92
           verifier.VerifyString(name()) &&
377
92
           VerifyField<int64_t>(verifier, VT_VALUE, 8) &&
378
92
           VerifyOffset(verifier, VT_UNION_TYPE) &&
379
92
           verifier.VerifyTable(union_type()) &&
380
92
           VerifyOffset(verifier, VT_DOCUMENTATION) &&
381
92
           verifier.VerifyVector(documentation()) &&
382
92
           verifier.VerifyVectorOfStrings(documentation()) &&
383
92
           VerifyOffset(verifier, VT_ATTRIBUTES) &&
384
92
           verifier.VerifyVector(attributes()) &&
385
92
           verifier.VerifyVectorOfTables(attributes()) &&
386
92
           verifier.EndTable();
387
92
  }
388
};
389
390
struct EnumValBuilder {
391
  typedef EnumVal Table;
392
  ::flatbuffers::FlatBufferBuilder &fbb_;
393
  ::flatbuffers::uoffset_t start_;
394
0
  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
395
0
    fbb_.AddOffset(EnumVal::VT_NAME, name);
396
0
  }
397
0
  void add_value(int64_t value) {
398
0
    fbb_.AddElement<int64_t>(EnumVal::VT_VALUE, value, 0);
399
0
  }
400
0
  void add_union_type(::flatbuffers::Offset<reflection::Type> union_type) {
401
0
    fbb_.AddOffset(EnumVal::VT_UNION_TYPE, union_type);
402
0
  }
403
0
  void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
404
0
    fbb_.AddOffset(EnumVal::VT_DOCUMENTATION, documentation);
405
0
  }
406
0
  void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
407
0
    fbb_.AddOffset(EnumVal::VT_ATTRIBUTES, attributes);
408
0
  }
409
  explicit EnumValBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
410
0
        : fbb_(_fbb) {
411
0
    start_ = fbb_.StartTable();
412
0
  }
413
0
  ::flatbuffers::Offset<EnumVal> Finish() {
414
0
    const auto end = fbb_.EndTable(start_);
415
0
    auto o = ::flatbuffers::Offset<EnumVal>(end);
416
0
    fbb_.Required(o, EnumVal::VT_NAME);
417
0
    return o;
418
0
  }
419
};
420
421
inline ::flatbuffers::Offset<EnumVal> CreateEnumVal(
422
    ::flatbuffers::FlatBufferBuilder &_fbb,
423
    ::flatbuffers::Offset<::flatbuffers::String> name = 0,
424
    int64_t value = 0,
425
    ::flatbuffers::Offset<reflection::Type> union_type = 0,
426
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
427
0
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0) {
428
0
  EnumValBuilder builder_(_fbb);
429
0
  builder_.add_value(value);
430
0
  builder_.add_attributes(attributes);
431
0
  builder_.add_documentation(documentation);
432
0
  builder_.add_union_type(union_type);
433
0
  builder_.add_name(name);
434
0
  return builder_.Finish();
435
0
}
436
437
inline ::flatbuffers::Offset<EnumVal> CreateEnumValDirect(
438
    ::flatbuffers::FlatBufferBuilder &_fbb,
439
    const char *name = nullptr,
440
    int64_t value = 0,
441
    ::flatbuffers::Offset<reflection::Type> union_type = 0,
442
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
443
0
    std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr) {
444
0
  auto name__ = name ? _fbb.CreateString(name) : 0;
445
0
  auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
446
0
  auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
447
0
  return reflection::CreateEnumVal(
448
0
      _fbb,
449
0
      name__,
450
0
      value,
451
0
      union_type,
452
0
      documentation__,
453
0
      attributes__);
454
0
}
455
456
struct Enum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
457
  typedef EnumBuilder Builder;
458
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
459
    VT_NAME = 4,
460
    VT_VALUES = 6,
461
    VT_IS_UNION = 8,
462
    VT_UNDERLYING_TYPE = 10,
463
    VT_ATTRIBUTES = 12,
464
    VT_DOCUMENTATION = 14,
465
    VT_DECLARATION_FILE = 16
466
  };
467
84
  const ::flatbuffers::String *name() const {
468
84
    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
469
84
  }
470
0
  bool KeyCompareLessThan(const Enum * const o) const {
471
0
    return *name() < *o->name();
472
0
  }
473
0
  int KeyCompareWithValue(const char *_name) const {
474
0
    return strcmp(name()->c_str(), _name);
475
0
  }
476
  template<typename StringType>
477
  int KeyCompareWithValue(const StringType& _name) const {
478
    if (name()->c_str() < _name) return -1;
479
    if (_name < name()->c_str()) return 1;
480
    return 0;
481
  }
482
162
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>> *values() const {
483
162
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>> *>(VT_VALUES);
484
162
  }
485
14
  bool is_union() const {
486
14
    return GetField<uint8_t>(VT_IS_UNION, 0) != 0;
487
14
  }
488
42
  const reflection::Type *underlying_type() const {
489
42
    return GetPointer<const reflection::Type *>(VT_UNDERLYING_TYPE);
490
42
  }
491
70
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
492
70
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
493
70
  }
494
70
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
495
70
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
496
70
  }
497
  /// File that this Enum is declared in.
498
28
  const ::flatbuffers::String *declaration_file() const {
499
28
    return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
500
28
  }
501
  template <bool B = false>
502
28
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
503
28
    return VerifyTableStart(verifier) &&
504
28
           VerifyOffsetRequired(verifier, VT_NAME) &&
505
28
           verifier.VerifyString(name()) &&
506
28
           VerifyOffsetRequired(verifier, VT_VALUES) &&
507
28
           verifier.VerifyVector(values()) &&
508
28
           verifier.VerifyVectorOfTables(values()) &&
509
28
           VerifyField<uint8_t>(verifier, VT_IS_UNION, 1) &&
510
28
           VerifyOffsetRequired(verifier, VT_UNDERLYING_TYPE) &&
511
28
           verifier.VerifyTable(underlying_type()) &&
512
28
           VerifyOffset(verifier, VT_ATTRIBUTES) &&
513
28
           verifier.VerifyVector(attributes()) &&
514
28
           verifier.VerifyVectorOfTables(attributes()) &&
515
28
           VerifyOffset(verifier, VT_DOCUMENTATION) &&
516
28
           verifier.VerifyVector(documentation()) &&
517
28
           verifier.VerifyVectorOfStrings(documentation()) &&
518
28
           VerifyOffset(verifier, VT_DECLARATION_FILE) &&
519
28
           verifier.VerifyString(declaration_file()) &&
520
28
           verifier.EndTable();
521
28
  }
522
};
523
524
struct EnumBuilder {
525
  typedef Enum Table;
526
  ::flatbuffers::FlatBufferBuilder &fbb_;
527
  ::flatbuffers::uoffset_t start_;
528
0
  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
529
0
    fbb_.AddOffset(Enum::VT_NAME, name);
530
0
  }
531
0
  void add_values(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>>> values) {
532
0
    fbb_.AddOffset(Enum::VT_VALUES, values);
533
0
  }
534
0
  void add_is_union(bool is_union) {
535
0
    fbb_.AddElement<uint8_t>(Enum::VT_IS_UNION, static_cast<uint8_t>(is_union), 0);
536
0
  }
537
0
  void add_underlying_type(::flatbuffers::Offset<reflection::Type> underlying_type) {
538
0
    fbb_.AddOffset(Enum::VT_UNDERLYING_TYPE, underlying_type);
539
0
  }
540
0
  void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
541
0
    fbb_.AddOffset(Enum::VT_ATTRIBUTES, attributes);
542
0
  }
543
0
  void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
544
0
    fbb_.AddOffset(Enum::VT_DOCUMENTATION, documentation);
545
0
  }
546
0
  void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) {
547
0
    fbb_.AddOffset(Enum::VT_DECLARATION_FILE, declaration_file);
548
0
  }
549
  explicit EnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
550
0
        : fbb_(_fbb) {
551
0
    start_ = fbb_.StartTable();
552
0
  }
553
0
  ::flatbuffers::Offset<Enum> Finish() {
554
0
    const auto end = fbb_.EndTable(start_);
555
0
    auto o = ::flatbuffers::Offset<Enum>(end);
556
0
    fbb_.Required(o, Enum::VT_NAME);
557
0
    fbb_.Required(o, Enum::VT_VALUES);
558
0
    fbb_.Required(o, Enum::VT_UNDERLYING_TYPE);
559
0
    return o;
560
0
  }
561
};
562
563
inline ::flatbuffers::Offset<Enum> CreateEnum(
564
    ::flatbuffers::FlatBufferBuilder &_fbb,
565
    ::flatbuffers::Offset<::flatbuffers::String> name = 0,
566
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>>> values = 0,
567
    bool is_union = false,
568
    ::flatbuffers::Offset<reflection::Type> underlying_type = 0,
569
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
570
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
571
0
    ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) {
572
0
  EnumBuilder builder_(_fbb);
573
0
  builder_.add_declaration_file(declaration_file);
574
0
  builder_.add_documentation(documentation);
575
0
  builder_.add_attributes(attributes);
576
0
  builder_.add_underlying_type(underlying_type);
577
0
  builder_.add_values(values);
578
0
  builder_.add_name(name);
579
0
  builder_.add_is_union(is_union);
580
0
  return builder_.Finish();
581
0
}
582
583
inline ::flatbuffers::Offset<Enum> CreateEnumDirect(
584
    ::flatbuffers::FlatBufferBuilder &_fbb,
585
    const char *name = nullptr,
586
    std::vector<::flatbuffers::Offset<reflection::EnumVal>> *values = nullptr,
587
    bool is_union = false,
588
    ::flatbuffers::Offset<reflection::Type> underlying_type = 0,
589
    std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
590
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
591
0
    const char *declaration_file = nullptr) {
592
0
  auto name__ = name ? _fbb.CreateString(name) : 0;
593
0
  auto values__ = values ? _fbb.CreateVectorOfSortedTables<reflection::EnumVal>(values) : 0;
594
0
  auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
595
0
  auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
596
0
  auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0;
597
0
  return reflection::CreateEnum(
598
0
      _fbb,
599
0
      name__,
600
0
      values__,
601
0
      is_union,
602
0
      underlying_type,
603
0
      attributes__,
604
0
      documentation__,
605
0
      declaration_file__);
606
0
}
607
608
struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
609
  typedef FieldBuilder Builder;
610
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
611
    VT_NAME = 4,
612
    VT_TYPE = 6,
613
    VT_ID = 8,
614
    VT_OFFSET = 10,
615
    VT_DEFAULT_INTEGER = 12,
616
    VT_DEFAULT_REAL = 14,
617
    VT_DEPRECATED = 16,
618
    VT_REQUIRED = 18,
619
    VT_KEY = 20,
620
    VT_ATTRIBUTES = 22,
621
    VT_DOCUMENTATION = 24,
622
    VT_OPTIONAL = 26,
623
    VT_PADDING = 28,
624
    VT_OFFSET64 = 30
625
  };
626
1.86k
  const ::flatbuffers::String *name() const {
627
1.86k
    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
628
1.86k
  }
629
0
  bool KeyCompareLessThan(const Field * const o) const {
630
0
    return *name() < *o->name();
631
0
  }
632
0
  int KeyCompareWithValue(const char *_name) const {
633
0
    return strcmp(name()->c_str(), _name);
634
0
  }
635
  template<typename StringType>
636
  int KeyCompareWithValue(const StringType& _name) const {
637
    if (name()->c_str() < _name) return -1;
638
    if (_name < name()->c_str()) return 1;
639
    return 0;
640
  }
641
1.86k
  const reflection::Type *type() const {
642
1.86k
    return GetPointer<const reflection::Type *>(VT_TYPE);
643
1.86k
  }
644
192
  uint16_t id() const {
645
192
    return GetField<uint16_t>(VT_ID, 0);
646
192
  }
647
210
  uint16_t offset() const {
648
210
    return GetField<uint16_t>(VT_OFFSET, 0);
649
210
  }
650
80
  int64_t default_integer() const {
651
80
    return GetField<int64_t>(VT_DEFAULT_INTEGER, 0);
652
80
  }
653
34
  double default_real() const {
654
34
    return GetField<double>(VT_DEFAULT_REAL, 0.0);
655
34
  }
656
0
  bool deprecated() const {
657
0
    return GetField<uint8_t>(VT_DEPRECATED, 0) != 0;
658
0
  }
659
192
  bool required() const {
660
192
    return GetField<uint8_t>(VT_REQUIRED, 0) != 0;
661
192
  }
662
192
  bool key() const {
663
192
    return GetField<uint8_t>(VT_KEY, 0) != 0;
664
192
  }
665
3.53k
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
666
3.53k
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
667
3.53k
  }
668
3.53k
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
669
3.53k
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
670
3.53k
  }
671
192
  bool optional() const {
672
192
    return GetField<uint8_t>(VT_OPTIONAL, 0) != 0;
673
192
  }
674
  /// Number of padding octets to always add after this field. Structs only.
675
192
  uint16_t padding() const {
676
192
    return GetField<uint16_t>(VT_PADDING, 0);
677
192
  }
678
  /// If the field uses 64-bit offsets.
679
192
  bool offset64() const {
680
192
    return GetField<uint8_t>(VT_OFFSET64, 0) != 0;
681
192
  }
682
  template <bool B = false>
683
1.67k
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
684
1.67k
    return VerifyTableStart(verifier) &&
685
1.67k
           VerifyOffsetRequired(verifier, VT_NAME) &&
686
1.67k
           verifier.VerifyString(name()) &&
687
1.67k
           VerifyOffsetRequired(verifier, VT_TYPE) &&
688
1.67k
           verifier.VerifyTable(type()) &&
689
1.67k
           VerifyField<uint16_t>(verifier, VT_ID, 2) &&
690
1.67k
           VerifyField<uint16_t>(verifier, VT_OFFSET, 2) &&
691
1.67k
           VerifyField<int64_t>(verifier, VT_DEFAULT_INTEGER, 8) &&
692
1.67k
           VerifyField<double>(verifier, VT_DEFAULT_REAL, 8) &&
693
1.67k
           VerifyField<uint8_t>(verifier, VT_DEPRECATED, 1) &&
694
1.67k
           VerifyField<uint8_t>(verifier, VT_REQUIRED, 1) &&
695
1.67k
           VerifyField<uint8_t>(verifier, VT_KEY, 1) &&
696
1.67k
           VerifyOffset(verifier, VT_ATTRIBUTES) &&
697
1.67k
           verifier.VerifyVector(attributes()) &&
698
1.67k
           verifier.VerifyVectorOfTables(attributes()) &&
699
1.67k
           VerifyOffset(verifier, VT_DOCUMENTATION) &&
700
1.67k
           verifier.VerifyVector(documentation()) &&
701
1.67k
           verifier.VerifyVectorOfStrings(documentation()) &&
702
1.67k
           VerifyField<uint8_t>(verifier, VT_OPTIONAL, 1) &&
703
1.67k
           VerifyField<uint16_t>(verifier, VT_PADDING, 2) &&
704
1.67k
           VerifyField<uint8_t>(verifier, VT_OFFSET64, 1) &&
705
1.67k
           verifier.EndTable();
706
1.67k
  }
707
};
708
709
struct FieldBuilder {
710
  typedef Field Table;
711
  ::flatbuffers::FlatBufferBuilder &fbb_;
712
  ::flatbuffers::uoffset_t start_;
713
0
  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
714
0
    fbb_.AddOffset(Field::VT_NAME, name);
715
0
  }
716
0
  void add_type(::flatbuffers::Offset<reflection::Type> type) {
717
0
    fbb_.AddOffset(Field::VT_TYPE, type);
718
0
  }
719
0
  void add_id(uint16_t id) {
720
0
    fbb_.AddElement<uint16_t>(Field::VT_ID, id, 0);
721
0
  }
722
0
  void add_offset(uint16_t offset) {
723
0
    fbb_.AddElement<uint16_t>(Field::VT_OFFSET, offset, 0);
724
0
  }
725
0
  void add_default_integer(int64_t default_integer) {
726
0
    fbb_.AddElement<int64_t>(Field::VT_DEFAULT_INTEGER, default_integer, 0);
727
0
  }
728
0
  void add_default_real(double default_real) {
729
0
    fbb_.AddElement<double>(Field::VT_DEFAULT_REAL, default_real, 0.0);
730
0
  }
731
0
  void add_deprecated(bool deprecated) {
732
0
    fbb_.AddElement<uint8_t>(Field::VT_DEPRECATED, static_cast<uint8_t>(deprecated), 0);
733
0
  }
734
0
  void add_required(bool required) {
735
0
    fbb_.AddElement<uint8_t>(Field::VT_REQUIRED, static_cast<uint8_t>(required), 0);
736
0
  }
737
0
  void add_key(bool key) {
738
0
    fbb_.AddElement<uint8_t>(Field::VT_KEY, static_cast<uint8_t>(key), 0);
739
0
  }
740
0
  void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
741
0
    fbb_.AddOffset(Field::VT_ATTRIBUTES, attributes);
742
0
  }
743
0
  void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
744
0
    fbb_.AddOffset(Field::VT_DOCUMENTATION, documentation);
745
0
  }
746
0
  void add_optional(bool optional) {
747
0
    fbb_.AddElement<uint8_t>(Field::VT_OPTIONAL, static_cast<uint8_t>(optional), 0);
748
0
  }
749
0
  void add_padding(uint16_t padding) {
750
0
    fbb_.AddElement<uint16_t>(Field::VT_PADDING, padding, 0);
751
0
  }
752
0
  void add_offset64(bool offset64) {
753
0
    fbb_.AddElement<uint8_t>(Field::VT_OFFSET64, static_cast<uint8_t>(offset64), 0);
754
0
  }
755
  explicit FieldBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
756
0
        : fbb_(_fbb) {
757
0
    start_ = fbb_.StartTable();
758
0
  }
759
0
  ::flatbuffers::Offset<Field> Finish() {
760
0
    const auto end = fbb_.EndTable(start_);
761
0
    auto o = ::flatbuffers::Offset<Field>(end);
762
0
    fbb_.Required(o, Field::VT_NAME);
763
0
    fbb_.Required(o, Field::VT_TYPE);
764
0
    return o;
765
0
  }
766
};
767
768
inline ::flatbuffers::Offset<Field> CreateField(
769
    ::flatbuffers::FlatBufferBuilder &_fbb,
770
    ::flatbuffers::Offset<::flatbuffers::String> name = 0,
771
    ::flatbuffers::Offset<reflection::Type> type = 0,
772
    uint16_t id = 0,
773
    uint16_t offset = 0,
774
    int64_t default_integer = 0,
775
    double default_real = 0.0,
776
    bool deprecated = false,
777
    bool required = false,
778
    bool key = false,
779
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
780
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
781
    bool optional = false,
782
    uint16_t padding = 0,
783
0
    bool offset64 = false) {
784
0
  FieldBuilder builder_(_fbb);
785
0
  builder_.add_default_real(default_real);
786
0
  builder_.add_default_integer(default_integer);
787
0
  builder_.add_documentation(documentation);
788
0
  builder_.add_attributes(attributes);
789
0
  builder_.add_type(type);
790
0
  builder_.add_name(name);
791
0
  builder_.add_padding(padding);
792
0
  builder_.add_offset(offset);
793
0
  builder_.add_id(id);
794
0
  builder_.add_offset64(offset64);
795
0
  builder_.add_optional(optional);
796
0
  builder_.add_key(key);
797
0
  builder_.add_required(required);
798
0
  builder_.add_deprecated(deprecated);
799
0
  return builder_.Finish();
800
0
}
801
802
inline ::flatbuffers::Offset<Field> CreateFieldDirect(
803
    ::flatbuffers::FlatBufferBuilder &_fbb,
804
    const char *name = nullptr,
805
    ::flatbuffers::Offset<reflection::Type> type = 0,
806
    uint16_t id = 0,
807
    uint16_t offset = 0,
808
    int64_t default_integer = 0,
809
    double default_real = 0.0,
810
    bool deprecated = false,
811
    bool required = false,
812
    bool key = false,
813
    std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
814
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
815
    bool optional = false,
816
    uint16_t padding = 0,
817
0
    bool offset64 = false) {
818
0
  auto name__ = name ? _fbb.CreateString(name) : 0;
819
0
  auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
820
0
  auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
821
0
  return reflection::CreateField(
822
0
      _fbb,
823
0
      name__,
824
0
      type,
825
0
      id,
826
0
      offset,
827
0
      default_integer,
828
0
      default_real,
829
0
      deprecated,
830
0
      required,
831
0
      key,
832
0
      attributes__,
833
0
      documentation__,
834
0
      optional,
835
0
      padding,
836
0
      offset64);
837
0
}
838
839
struct Object FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
840
  typedef ObjectBuilder Builder;
841
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
842
    VT_NAME = 4,
843
    VT_FIELDS = 6,
844
    VT_IS_STRUCT = 8,
845
    VT_MINALIGN = 10,
846
    VT_BYTESIZE = 12,
847
    VT_ATTRIBUTES = 14,
848
    VT_DOCUMENTATION = 16,
849
    VT_DECLARATION_FILE = 18
850
  };
851
232
  const ::flatbuffers::String *name() const {
852
232
    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
853
232
  }
854
0
  bool KeyCompareLessThan(const Object * const o) const {
855
0
    return *name() < *o->name();
856
0
  }
857
0
  int KeyCompareWithValue(const char *_name) const {
858
0
    return strcmp(name()->c_str(), _name);
859
0
  }
860
  template<typename StringType>
861
  int KeyCompareWithValue(const StringType& _name) const {
862
    if (name()->c_str() < _name) return -1;
863
    if (_name < name()->c_str()) return 1;
864
    return 0;
865
  }
866
222
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>> *fields() const {
867
222
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>> *>(VT_FIELDS);
868
222
  }
869
30
  bool is_struct() const {
870
30
    return GetField<uint8_t>(VT_IS_STRUCT, 0) != 0;
871
30
  }
872
30
  int32_t minalign() const {
873
30
    return GetField<int32_t>(VT_MINALIGN, 0);
874
30
  }
875
60
  int32_t bytesize() const {
876
60
    return GetField<int32_t>(VT_BYTESIZE, 0);
877
60
  }
878
222
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
879
222
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
880
222
  }
881
222
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
882
222
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
883
222
  }
884
  /// File that this Object is declared in.
885
96
  const ::flatbuffers::String *declaration_file() const {
886
96
    return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
887
96
  }
888
  template <bool B = false>
889
96
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
890
96
    return VerifyTableStart(verifier) &&
891
96
           VerifyOffsetRequired(verifier, VT_NAME) &&
892
96
           verifier.VerifyString(name()) &&
893
96
           VerifyOffsetRequired(verifier, VT_FIELDS) &&
894
96
           verifier.VerifyVector(fields()) &&
895
96
           verifier.VerifyVectorOfTables(fields()) &&
896
96
           VerifyField<uint8_t>(verifier, VT_IS_STRUCT, 1) &&
897
96
           VerifyField<int32_t>(verifier, VT_MINALIGN, 4) &&
898
96
           VerifyField<int32_t>(verifier, VT_BYTESIZE, 4) &&
899
96
           VerifyOffset(verifier, VT_ATTRIBUTES) &&
900
96
           verifier.VerifyVector(attributes()) &&
901
96
           verifier.VerifyVectorOfTables(attributes()) &&
902
96
           VerifyOffset(verifier, VT_DOCUMENTATION) &&
903
96
           verifier.VerifyVector(documentation()) &&
904
96
           verifier.VerifyVectorOfStrings(documentation()) &&
905
96
           VerifyOffset(verifier, VT_DECLARATION_FILE) &&
906
96
           verifier.VerifyString(declaration_file()) &&
907
96
           verifier.EndTable();
908
96
  }
909
};
910
911
struct ObjectBuilder {
912
  typedef Object Table;
913
  ::flatbuffers::FlatBufferBuilder &fbb_;
914
  ::flatbuffers::uoffset_t start_;
915
0
  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
916
0
    fbb_.AddOffset(Object::VT_NAME, name);
917
0
  }
918
0
  void add_fields(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>>> fields) {
919
0
    fbb_.AddOffset(Object::VT_FIELDS, fields);
920
0
  }
921
0
  void add_is_struct(bool is_struct) {
922
0
    fbb_.AddElement<uint8_t>(Object::VT_IS_STRUCT, static_cast<uint8_t>(is_struct), 0);
923
0
  }
924
0
  void add_minalign(int32_t minalign) {
925
0
    fbb_.AddElement<int32_t>(Object::VT_MINALIGN, minalign, 0);
926
0
  }
927
0
  void add_bytesize(int32_t bytesize) {
928
0
    fbb_.AddElement<int32_t>(Object::VT_BYTESIZE, bytesize, 0);
929
0
  }
930
0
  void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
931
0
    fbb_.AddOffset(Object::VT_ATTRIBUTES, attributes);
932
0
  }
933
0
  void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
934
0
    fbb_.AddOffset(Object::VT_DOCUMENTATION, documentation);
935
0
  }
936
0
  void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) {
937
0
    fbb_.AddOffset(Object::VT_DECLARATION_FILE, declaration_file);
938
0
  }
939
  explicit ObjectBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
940
0
        : fbb_(_fbb) {
941
0
    start_ = fbb_.StartTable();
942
0
  }
943
0
  ::flatbuffers::Offset<Object> Finish() {
944
0
    const auto end = fbb_.EndTable(start_);
945
0
    auto o = ::flatbuffers::Offset<Object>(end);
946
0
    fbb_.Required(o, Object::VT_NAME);
947
0
    fbb_.Required(o, Object::VT_FIELDS);
948
0
    return o;
949
0
  }
950
};
951
952
inline ::flatbuffers::Offset<Object> CreateObject(
953
    ::flatbuffers::FlatBufferBuilder &_fbb,
954
    ::flatbuffers::Offset<::flatbuffers::String> name = 0,
955
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>>> fields = 0,
956
    bool is_struct = false,
957
    int32_t minalign = 0,
958
    int32_t bytesize = 0,
959
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
960
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
961
0
    ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) {
962
0
  ObjectBuilder builder_(_fbb);
963
0
  builder_.add_declaration_file(declaration_file);
964
0
  builder_.add_documentation(documentation);
965
0
  builder_.add_attributes(attributes);
966
0
  builder_.add_bytesize(bytesize);
967
0
  builder_.add_minalign(minalign);
968
0
  builder_.add_fields(fields);
969
0
  builder_.add_name(name);
970
0
  builder_.add_is_struct(is_struct);
971
0
  return builder_.Finish();
972
0
}
973
974
inline ::flatbuffers::Offset<Object> CreateObjectDirect(
975
    ::flatbuffers::FlatBufferBuilder &_fbb,
976
    const char *name = nullptr,
977
    std::vector<::flatbuffers::Offset<reflection::Field>> *fields = nullptr,
978
    bool is_struct = false,
979
    int32_t minalign = 0,
980
    int32_t bytesize = 0,
981
    std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
982
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
983
0
    const char *declaration_file = nullptr) {
984
0
  auto name__ = name ? _fbb.CreateString(name) : 0;
985
0
  auto fields__ = fields ? _fbb.CreateVectorOfSortedTables<reflection::Field>(fields) : 0;
986
0
  auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
987
0
  auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
988
0
  auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0;
989
0
  return reflection::CreateObject(
990
0
      _fbb,
991
0
      name__,
992
0
      fields__,
993
0
      is_struct,
994
0
      minalign,
995
0
      bytesize,
996
0
      attributes__,
997
0
      documentation__,
998
0
      declaration_file__);
999
0
}
1000
1001
struct RPCCall FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
1002
  typedef RPCCallBuilder Builder;
1003
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1004
    VT_NAME = 4,
1005
    VT_REQUEST = 6,
1006
    VT_RESPONSE = 8,
1007
    VT_ATTRIBUTES = 10,
1008
    VT_DOCUMENTATION = 12
1009
  };
1010
24
  const ::flatbuffers::String *name() const {
1011
24
    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
1012
24
  }
1013
0
  bool KeyCompareLessThan(const RPCCall * const o) const {
1014
0
    return *name() < *o->name();
1015
0
  }
1016
0
  int KeyCompareWithValue(const char *_name) const {
1017
0
    return strcmp(name()->c_str(), _name);
1018
0
  }
1019
  template<typename StringType>
1020
  int KeyCompareWithValue(const StringType& _name) const {
1021
    if (name()->c_str() < _name) return -1;
1022
    if (_name < name()->c_str()) return 1;
1023
    return 0;
1024
  }
1025
24
  const reflection::Object *request() const {
1026
24
    return GetPointer<const reflection::Object *>(VT_REQUEST);
1027
24
  }
1028
24
  const reflection::Object *response() const {
1029
24
    return GetPointer<const reflection::Object *>(VT_RESPONSE);
1030
24
  }
1031
40
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
1032
40
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
1033
40
  }
1034
40
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
1035
40
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
1036
40
  }
1037
  template <bool B = false>
1038
16
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
1039
16
    return VerifyTableStart(verifier) &&
1040
16
           VerifyOffsetRequired(verifier, VT_NAME) &&
1041
16
           verifier.VerifyString(name()) &&
1042
16
           VerifyOffsetRequired(verifier, VT_REQUEST) &&
1043
16
           verifier.VerifyTable(request()) &&
1044
16
           VerifyOffsetRequired(verifier, VT_RESPONSE) &&
1045
16
           verifier.VerifyTable(response()) &&
1046
16
           VerifyOffset(verifier, VT_ATTRIBUTES) &&
1047
16
           verifier.VerifyVector(attributes()) &&
1048
16
           verifier.VerifyVectorOfTables(attributes()) &&
1049
16
           VerifyOffset(verifier, VT_DOCUMENTATION) &&
1050
16
           verifier.VerifyVector(documentation()) &&
1051
16
           verifier.VerifyVectorOfStrings(documentation()) &&
1052
16
           verifier.EndTable();
1053
16
  }
1054
};
1055
1056
struct RPCCallBuilder {
1057
  typedef RPCCall Table;
1058
  ::flatbuffers::FlatBufferBuilder &fbb_;
1059
  ::flatbuffers::uoffset_t start_;
1060
0
  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
1061
0
    fbb_.AddOffset(RPCCall::VT_NAME, name);
1062
0
  }
1063
0
  void add_request(::flatbuffers::Offset<reflection::Object> request) {
1064
0
    fbb_.AddOffset(RPCCall::VT_REQUEST, request);
1065
0
  }
1066
0
  void add_response(::flatbuffers::Offset<reflection::Object> response) {
1067
0
    fbb_.AddOffset(RPCCall::VT_RESPONSE, response);
1068
0
  }
1069
0
  void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
1070
0
    fbb_.AddOffset(RPCCall::VT_ATTRIBUTES, attributes);
1071
0
  }
1072
0
  void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
1073
0
    fbb_.AddOffset(RPCCall::VT_DOCUMENTATION, documentation);
1074
0
  }
1075
  explicit RPCCallBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
1076
0
        : fbb_(_fbb) {
1077
0
    start_ = fbb_.StartTable();
1078
0
  }
1079
0
  ::flatbuffers::Offset<RPCCall> Finish() {
1080
0
    const auto end = fbb_.EndTable(start_);
1081
0
    auto o = ::flatbuffers::Offset<RPCCall>(end);
1082
0
    fbb_.Required(o, RPCCall::VT_NAME);
1083
0
    fbb_.Required(o, RPCCall::VT_REQUEST);
1084
0
    fbb_.Required(o, RPCCall::VT_RESPONSE);
1085
0
    return o;
1086
0
  }
1087
};
1088
1089
inline ::flatbuffers::Offset<RPCCall> CreateRPCCall(
1090
    ::flatbuffers::FlatBufferBuilder &_fbb,
1091
    ::flatbuffers::Offset<::flatbuffers::String> name = 0,
1092
    ::flatbuffers::Offset<reflection::Object> request = 0,
1093
    ::flatbuffers::Offset<reflection::Object> response = 0,
1094
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
1095
0
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0) {
1096
0
  RPCCallBuilder builder_(_fbb);
1097
0
  builder_.add_documentation(documentation);
1098
0
  builder_.add_attributes(attributes);
1099
0
  builder_.add_response(response);
1100
0
  builder_.add_request(request);
1101
0
  builder_.add_name(name);
1102
0
  return builder_.Finish();
1103
0
}
1104
1105
inline ::flatbuffers::Offset<RPCCall> CreateRPCCallDirect(
1106
    ::flatbuffers::FlatBufferBuilder &_fbb,
1107
    const char *name = nullptr,
1108
    ::flatbuffers::Offset<reflection::Object> request = 0,
1109
    ::flatbuffers::Offset<reflection::Object> response = 0,
1110
    std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
1111
0
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr) {
1112
0
  auto name__ = name ? _fbb.CreateString(name) : 0;
1113
0
  auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
1114
0
  auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
1115
0
  return reflection::CreateRPCCall(
1116
0
      _fbb,
1117
0
      name__,
1118
0
      request,
1119
0
      response,
1120
0
      attributes__,
1121
0
      documentation__);
1122
0
}
1123
1124
struct Service FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
1125
  typedef ServiceBuilder Builder;
1126
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1127
    VT_NAME = 4,
1128
    VT_CALLS = 6,
1129
    VT_ATTRIBUTES = 8,
1130
    VT_DOCUMENTATION = 10,
1131
    VT_DECLARATION_FILE = 12
1132
  };
1133
8
  const ::flatbuffers::String *name() const {
1134
8
    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
1135
8
  }
1136
0
  bool KeyCompareLessThan(const Service * const o) const {
1137
0
    return *name() < *o->name();
1138
0
  }
1139
0
  int KeyCompareWithValue(const char *_name) const {
1140
0
    return strcmp(name()->c_str(), _name);
1141
0
  }
1142
  template<typename StringType>
1143
  int KeyCompareWithValue(const StringType& _name) const {
1144
    if (name()->c_str() < _name) return -1;
1145
    if (_name < name()->c_str()) return 1;
1146
    return 0;
1147
  }
1148
28
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>> *calls() const {
1149
28
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>> *>(VT_CALLS);
1150
28
  }
1151
10
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
1152
10
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
1153
10
  }
1154
10
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
1155
10
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
1156
10
  }
1157
  /// File that this Service is declared in.
1158
4
  const ::flatbuffers::String *declaration_file() const {
1159
4
    return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
1160
4
  }
1161
  template <bool B = false>
1162
4
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
1163
4
    return VerifyTableStart(verifier) &&
1164
4
           VerifyOffsetRequired(verifier, VT_NAME) &&
1165
4
           verifier.VerifyString(name()) &&
1166
4
           VerifyOffset(verifier, VT_CALLS) &&
1167
4
           verifier.VerifyVector(calls()) &&
1168
4
           verifier.VerifyVectorOfTables(calls()) &&
1169
4
           VerifyOffset(verifier, VT_ATTRIBUTES) &&
1170
4
           verifier.VerifyVector(attributes()) &&
1171
4
           verifier.VerifyVectorOfTables(attributes()) &&
1172
4
           VerifyOffset(verifier, VT_DOCUMENTATION) &&
1173
4
           verifier.VerifyVector(documentation()) &&
1174
4
           verifier.VerifyVectorOfStrings(documentation()) &&
1175
4
           VerifyOffset(verifier, VT_DECLARATION_FILE) &&
1176
4
           verifier.VerifyString(declaration_file()) &&
1177
4
           verifier.EndTable();
1178
4
  }
1179
};
1180
1181
struct ServiceBuilder {
1182
  typedef Service Table;
1183
  ::flatbuffers::FlatBufferBuilder &fbb_;
1184
  ::flatbuffers::uoffset_t start_;
1185
0
  void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
1186
0
    fbb_.AddOffset(Service::VT_NAME, name);
1187
0
  }
1188
0
  void add_calls(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>>> calls) {
1189
0
    fbb_.AddOffset(Service::VT_CALLS, calls);
1190
0
  }
1191
0
  void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
1192
0
    fbb_.AddOffset(Service::VT_ATTRIBUTES, attributes);
1193
0
  }
1194
0
  void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
1195
0
    fbb_.AddOffset(Service::VT_DOCUMENTATION, documentation);
1196
0
  }
1197
0
  void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) {
1198
0
    fbb_.AddOffset(Service::VT_DECLARATION_FILE, declaration_file);
1199
0
  }
1200
  explicit ServiceBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
1201
0
        : fbb_(_fbb) {
1202
0
    start_ = fbb_.StartTable();
1203
0
  }
1204
0
  ::flatbuffers::Offset<Service> Finish() {
1205
0
    const auto end = fbb_.EndTable(start_);
1206
0
    auto o = ::flatbuffers::Offset<Service>(end);
1207
0
    fbb_.Required(o, Service::VT_NAME);
1208
0
    return o;
1209
0
  }
1210
};
1211
1212
inline ::flatbuffers::Offset<Service> CreateService(
1213
    ::flatbuffers::FlatBufferBuilder &_fbb,
1214
    ::flatbuffers::Offset<::flatbuffers::String> name = 0,
1215
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>>> calls = 0,
1216
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
1217
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
1218
0
    ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) {
1219
0
  ServiceBuilder builder_(_fbb);
1220
0
  builder_.add_declaration_file(declaration_file);
1221
0
  builder_.add_documentation(documentation);
1222
0
  builder_.add_attributes(attributes);
1223
0
  builder_.add_calls(calls);
1224
0
  builder_.add_name(name);
1225
0
  return builder_.Finish();
1226
0
}
1227
1228
inline ::flatbuffers::Offset<Service> CreateServiceDirect(
1229
    ::flatbuffers::FlatBufferBuilder &_fbb,
1230
    const char *name = nullptr,
1231
    std::vector<::flatbuffers::Offset<reflection::RPCCall>> *calls = nullptr,
1232
    std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
1233
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
1234
0
    const char *declaration_file = nullptr) {
1235
0
  auto name__ = name ? _fbb.CreateString(name) : 0;
1236
0
  auto calls__ = calls ? _fbb.CreateVectorOfSortedTables<reflection::RPCCall>(calls) : 0;
1237
0
  auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
1238
0
  auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
1239
0
  auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0;
1240
0
  return reflection::CreateService(
1241
0
      _fbb,
1242
0
      name__,
1243
0
      calls__,
1244
0
      attributes__,
1245
0
      documentation__,
1246
0
      declaration_file__);
1247
0
}
1248
1249
/// File specific information.
1250
/// Symbols declared within a file may be recovered by iterating over all
1251
/// symbols and examining the `declaration_file` field.
1252
struct SchemaFile FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
1253
  typedef SchemaFileBuilder Builder;
1254
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1255
    VT_FILENAME = 4,
1256
    VT_INCLUDED_FILENAMES = 6
1257
  };
1258
  /// Filename, relative to project root.
1259
22
  const ::flatbuffers::String *filename() const {
1260
22
    return GetPointer<const ::flatbuffers::String *>(VT_FILENAME);
1261
22
  }
1262
0
  bool KeyCompareLessThan(const SchemaFile * const o) const {
1263
0
    return *filename() < *o->filename();
1264
0
  }
1265
0
  int KeyCompareWithValue(const char *_filename) const {
1266
0
    return strcmp(filename()->c_str(), _filename);
1267
0
  }
1268
  template<typename StringType>
1269
  int KeyCompareWithValue(const StringType& _filename) const {
1270
    if (filename()->c_str() < _filename) return -1;
1271
    if (_filename < filename()->c_str()) return 1;
1272
    return 0;
1273
  }
1274
  /// Names of included files, relative to project root.
1275
46
  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames() const {
1276
46
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_INCLUDED_FILENAMES);
1277
46
  }
1278
  template <bool B = false>
1279
12
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
1280
12
    return VerifyTableStart(verifier) &&
1281
12
           VerifyOffsetRequired(verifier, VT_FILENAME) &&
1282
12
           verifier.VerifyString(filename()) &&
1283
12
           VerifyOffset(verifier, VT_INCLUDED_FILENAMES) &&
1284
12
           verifier.VerifyVector(included_filenames()) &&
1285
12
           verifier.VerifyVectorOfStrings(included_filenames()) &&
1286
12
           verifier.EndTable();
1287
12
  }
1288
};
1289
1290
struct SchemaFileBuilder {
1291
  typedef SchemaFile Table;
1292
  ::flatbuffers::FlatBufferBuilder &fbb_;
1293
  ::flatbuffers::uoffset_t start_;
1294
0
  void add_filename(::flatbuffers::Offset<::flatbuffers::String> filename) {
1295
0
    fbb_.AddOffset(SchemaFile::VT_FILENAME, filename);
1296
0
  }
1297
0
  void add_included_filenames(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> included_filenames) {
1298
0
    fbb_.AddOffset(SchemaFile::VT_INCLUDED_FILENAMES, included_filenames);
1299
0
  }
1300
  explicit SchemaFileBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
1301
0
        : fbb_(_fbb) {
1302
0
    start_ = fbb_.StartTable();
1303
0
  }
1304
0
  ::flatbuffers::Offset<SchemaFile> Finish() {
1305
0
    const auto end = fbb_.EndTable(start_);
1306
0
    auto o = ::flatbuffers::Offset<SchemaFile>(end);
1307
0
    fbb_.Required(o, SchemaFile::VT_FILENAME);
1308
0
    return o;
1309
0
  }
1310
};
1311
1312
inline ::flatbuffers::Offset<SchemaFile> CreateSchemaFile(
1313
    ::flatbuffers::FlatBufferBuilder &_fbb,
1314
    ::flatbuffers::Offset<::flatbuffers::String> filename = 0,
1315
0
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> included_filenames = 0) {
1316
0
  SchemaFileBuilder builder_(_fbb);
1317
0
  builder_.add_included_filenames(included_filenames);
1318
0
  builder_.add_filename(filename);
1319
0
  return builder_.Finish();
1320
0
}
1321
1322
inline ::flatbuffers::Offset<SchemaFile> CreateSchemaFileDirect(
1323
    ::flatbuffers::FlatBufferBuilder &_fbb,
1324
    const char *filename = nullptr,
1325
0
    const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames = nullptr) {
1326
0
  auto filename__ = filename ? _fbb.CreateString(filename) : 0;
1327
0
  auto included_filenames__ = included_filenames ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*included_filenames) : 0;
1328
0
  return reflection::CreateSchemaFile(
1329
0
      _fbb,
1330
0
      filename__,
1331
0
      included_filenames__);
1332
0
}
1333
1334
struct Schema FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
1335
  typedef SchemaBuilder Builder;
1336
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1337
    VT_OBJECTS = 4,
1338
    VT_ENUMS = 6,
1339
    VT_FILE_IDENT = 8,
1340
    VT_FILE_EXT = 10,
1341
    VT_ROOT_TABLE = 12,
1342
    VT_SERVICES = 14,
1343
    VT_ADVANCED_FEATURES = 16,
1344
    VT_FBS_FILES = 18
1345
  };
1346
76
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>> *objects() const {
1347
76
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>> *>(VT_OBJECTS);
1348
76
  }
1349
44
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>> *enums() const {
1350
44
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>> *>(VT_ENUMS);
1351
44
  }
1352
8
  const ::flatbuffers::String *file_ident() const {
1353
8
    return GetPointer<const ::flatbuffers::String *>(VT_FILE_IDENT);
1354
8
  }
1355
8
  const ::flatbuffers::String *file_ext() const {
1356
8
    return GetPointer<const ::flatbuffers::String *>(VT_FILE_EXT);
1357
8
  }
1358
34
  const reflection::Object *root_table() const {
1359
34
    return GetPointer<const reflection::Object *>(VT_ROOT_TABLE);
1360
34
  }
1361
16
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>> *services() const {
1362
16
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>> *>(VT_SERVICES);
1363
16
  }
1364
2
  reflection::AdvancedFeatures advanced_features() const {
1365
2
    return static_cast<reflection::AdvancedFeatures>(GetField<uint64_t>(VT_ADVANCED_FEATURES, 0));
1366
2
  }
1367
  /// All the files used in this compilation. Files are relative to where
1368
  /// flatc was invoked.
1369
20
  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>> *fbs_files() const {
1370
20
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>> *>(VT_FBS_FILES);
1371
20
  }
1372
  template <bool B = false>
1373
4
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
1374
4
    return VerifyTableStart(verifier) &&
1375
4
           VerifyOffsetRequired(verifier, VT_OBJECTS) &&
1376
4
           verifier.VerifyVector(objects()) &&
1377
4
           verifier.VerifyVectorOfTables(objects()) &&
1378
4
           VerifyOffsetRequired(verifier, VT_ENUMS) &&
1379
4
           verifier.VerifyVector(enums()) &&
1380
4
           verifier.VerifyVectorOfTables(enums()) &&
1381
4
           VerifyOffset(verifier, VT_FILE_IDENT) &&
1382
4
           verifier.VerifyString(file_ident()) &&
1383
4
           VerifyOffset(verifier, VT_FILE_EXT) &&
1384
4
           verifier.VerifyString(file_ext()) &&
1385
4
           VerifyOffset(verifier, VT_ROOT_TABLE) &&
1386
4
           verifier.VerifyTable(root_table()) &&
1387
4
           VerifyOffset(verifier, VT_SERVICES) &&
1388
4
           verifier.VerifyVector(services()) &&
1389
4
           verifier.VerifyVectorOfTables(services()) &&
1390
4
           VerifyField<uint64_t>(verifier, VT_ADVANCED_FEATURES, 8) &&
1391
4
           VerifyOffset(verifier, VT_FBS_FILES) &&
1392
4
           verifier.VerifyVector(fbs_files()) &&
1393
4
           verifier.VerifyVectorOfTables(fbs_files()) &&
1394
4
           verifier.EndTable();
1395
4
  }
1396
};
1397
1398
struct SchemaBuilder {
1399
  typedef Schema Table;
1400
  ::flatbuffers::FlatBufferBuilder &fbb_;
1401
  ::flatbuffers::uoffset_t start_;
1402
0
  void add_objects(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>>> objects) {
1403
0
    fbb_.AddOffset(Schema::VT_OBJECTS, objects);
1404
0
  }
1405
0
  void add_enums(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>>> enums) {
1406
0
    fbb_.AddOffset(Schema::VT_ENUMS, enums);
1407
0
  }
1408
0
  void add_file_ident(::flatbuffers::Offset<::flatbuffers::String> file_ident) {
1409
0
    fbb_.AddOffset(Schema::VT_FILE_IDENT, file_ident);
1410
0
  }
1411
0
  void add_file_ext(::flatbuffers::Offset<::flatbuffers::String> file_ext) {
1412
0
    fbb_.AddOffset(Schema::VT_FILE_EXT, file_ext);
1413
0
  }
1414
0
  void add_root_table(::flatbuffers::Offset<reflection::Object> root_table) {
1415
0
    fbb_.AddOffset(Schema::VT_ROOT_TABLE, root_table);
1416
0
  }
1417
0
  void add_services(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>>> services) {
1418
0
    fbb_.AddOffset(Schema::VT_SERVICES, services);
1419
0
  }
1420
0
  void add_advanced_features(reflection::AdvancedFeatures advanced_features) {
1421
0
    fbb_.AddElement<uint64_t>(Schema::VT_ADVANCED_FEATURES, static_cast<uint64_t>(advanced_features), 0);
1422
0
  }
1423
0
  void add_fbs_files(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>>> fbs_files) {
1424
0
    fbb_.AddOffset(Schema::VT_FBS_FILES, fbs_files);
1425
0
  }
1426
  explicit SchemaBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
1427
0
        : fbb_(_fbb) {
1428
0
    start_ = fbb_.StartTable();
1429
0
  }
1430
0
  ::flatbuffers::Offset<Schema> Finish() {
1431
0
    const auto end = fbb_.EndTable(start_);
1432
0
    auto o = ::flatbuffers::Offset<Schema>(end);
1433
0
    fbb_.Required(o, Schema::VT_OBJECTS);
1434
0
    fbb_.Required(o, Schema::VT_ENUMS);
1435
0
    return o;
1436
0
  }
1437
};
1438
1439
inline ::flatbuffers::Offset<Schema> CreateSchema(
1440
    ::flatbuffers::FlatBufferBuilder &_fbb,
1441
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>>> objects = 0,
1442
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>>> enums = 0,
1443
    ::flatbuffers::Offset<::flatbuffers::String> file_ident = 0,
1444
    ::flatbuffers::Offset<::flatbuffers::String> file_ext = 0,
1445
    ::flatbuffers::Offset<reflection::Object> root_table = 0,
1446
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>>> services = 0,
1447
    reflection::AdvancedFeatures advanced_features = static_cast<reflection::AdvancedFeatures>(0),
1448
0
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>>> fbs_files = 0) {
1449
0
  SchemaBuilder builder_(_fbb);
1450
0
  builder_.add_advanced_features(advanced_features);
1451
0
  builder_.add_fbs_files(fbs_files);
1452
0
  builder_.add_services(services);
1453
0
  builder_.add_root_table(root_table);
1454
0
  builder_.add_file_ext(file_ext);
1455
0
  builder_.add_file_ident(file_ident);
1456
0
  builder_.add_enums(enums);
1457
0
  builder_.add_objects(objects);
1458
0
  return builder_.Finish();
1459
0
}
1460
1461
inline ::flatbuffers::Offset<Schema> CreateSchemaDirect(
1462
    ::flatbuffers::FlatBufferBuilder &_fbb,
1463
    std::vector<::flatbuffers::Offset<reflection::Object>> *objects = nullptr,
1464
    std::vector<::flatbuffers::Offset<reflection::Enum>> *enums = nullptr,
1465
    const char *file_ident = nullptr,
1466
    const char *file_ext = nullptr,
1467
    ::flatbuffers::Offset<reflection::Object> root_table = 0,
1468
    std::vector<::flatbuffers::Offset<reflection::Service>> *services = nullptr,
1469
    reflection::AdvancedFeatures advanced_features = static_cast<reflection::AdvancedFeatures>(0),
1470
0
    std::vector<::flatbuffers::Offset<reflection::SchemaFile>> *fbs_files = nullptr) {
1471
0
  auto objects__ = objects ? _fbb.CreateVectorOfSortedTables<reflection::Object>(objects) : 0;
1472
0
  auto enums__ = enums ? _fbb.CreateVectorOfSortedTables<reflection::Enum>(enums) : 0;
1473
0
  auto file_ident__ = file_ident ? _fbb.CreateString(file_ident) : 0;
1474
0
  auto file_ext__ = file_ext ? _fbb.CreateString(file_ext) : 0;
1475
0
  auto services__ = services ? _fbb.CreateVectorOfSortedTables<reflection::Service>(services) : 0;
1476
0
  auto fbs_files__ = fbs_files ? _fbb.CreateVectorOfSortedTables<reflection::SchemaFile>(fbs_files) : 0;
1477
0
  return reflection::CreateSchema(
1478
0
      _fbb,
1479
0
      objects__,
1480
0
      enums__,
1481
0
      file_ident__,
1482
0
      file_ext__,
1483
0
      root_table,
1484
0
      services__,
1485
0
      advanced_features,
1486
0
      fbs_files__);
1487
0
}
1488
1489
2
inline const reflection::Schema *GetSchema(const void *buf) {
1490
2
  return ::flatbuffers::GetRoot<reflection::Schema>(buf);
1491
2
}
1492
1493
0
inline const reflection::Schema *GetSizePrefixedSchema(const void *buf) {
1494
0
  return ::flatbuffers::GetSizePrefixedRoot<reflection::Schema>(buf);
1495
0
}
1496
1497
6
inline const char *SchemaIdentifier() {
1498
6
  return "BFBS";
1499
6
}
1500
1501
2
inline bool SchemaBufferHasIdentifier(const void *buf) {
1502
2
  return ::flatbuffers::BufferHasIdentifier(
1503
2
      buf, SchemaIdentifier());
1504
2
}
1505
1506
0
inline bool SizePrefixedSchemaBufferHasIdentifier(const void *buf) {
1507
0
  return ::flatbuffers::BufferHasIdentifier(
1508
0
      buf, SchemaIdentifier(), true);
1509
0
}
1510
1511
template <bool B = false>
1512
inline bool VerifySchemaBuffer(
1513
4
    ::flatbuffers::VerifierTemplate<B> &verifier) {
1514
4
  return verifier.template VerifyBuffer<reflection::Schema>(SchemaIdentifier());
1515
4
}
1516
1517
template <bool B = false>
1518
inline bool VerifySizePrefixedSchemaBuffer(
1519
0
    ::flatbuffers::VerifierTemplate<B> &verifier) {
1520
0
  return verifier.template VerifySizePrefixedBuffer<reflection::Schema>(SchemaIdentifier());
1521
0
}
1522
1523
0
inline const char *SchemaExtension() {
1524
0
  return "bfbs";
1525
0
}
1526
1527
inline void FinishSchemaBuffer(
1528
    ::flatbuffers::FlatBufferBuilder &fbb,
1529
0
    ::flatbuffers::Offset<reflection::Schema> root) {
1530
0
  fbb.Finish(root, SchemaIdentifier());
1531
0
}
1532
1533
inline void FinishSizePrefixedSchemaBuffer(
1534
    ::flatbuffers::FlatBufferBuilder &fbb,
1535
0
    ::flatbuffers::Offset<reflection::Schema> root) {
1536
0
  fbb.FinishSizePrefixed(root, SchemaIdentifier());
1537
0
}
1538
1539
}  // namespace reflection
1540
1541
#endif  // FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_