1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
5 #define FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
6 
7 #include "flatbuffers/flatbuffers.h"
8 
9 namespace FlatGeobuf {
10 
11 struct Column;
12 struct ColumnBuilder;
13 
14 struct Crs;
15 struct CrsBuilder;
16 
17 struct Header;
18 struct HeaderBuilder;
19 
20 enum class GeometryType : uint8_t {
21   Unknown = 0,
22   Point = 1,
23   LineString = 2,
24   Polygon = 3,
25   MultiPoint = 4,
26   MultiLineString = 5,
27   MultiPolygon = 6,
28   GeometryCollection = 7,
29   CircularString = 8,
30   CompoundCurve = 9,
31   CurvePolygon = 10,
32   MultiCurve = 11,
33   MultiSurface = 12,
34   Curve = 13,
35   Surface = 14,
36   PolyhedralSurface = 15,
37   TIN = 16,
38   Triangle = 17,
39   MIN = Unknown,
40   MAX = Triangle
41 };
42 
EnumValuesGeometryType()43 inline const GeometryType (&EnumValuesGeometryType())[18] {
44   static const GeometryType values[] = {
45     GeometryType::Unknown,
46     GeometryType::Point,
47     GeometryType::LineString,
48     GeometryType::Polygon,
49     GeometryType::MultiPoint,
50     GeometryType::MultiLineString,
51     GeometryType::MultiPolygon,
52     GeometryType::GeometryCollection,
53     GeometryType::CircularString,
54     GeometryType::CompoundCurve,
55     GeometryType::CurvePolygon,
56     GeometryType::MultiCurve,
57     GeometryType::MultiSurface,
58     GeometryType::Curve,
59     GeometryType::Surface,
60     GeometryType::PolyhedralSurface,
61     GeometryType::TIN,
62     GeometryType::Triangle
63   };
64   return values;
65 }
66 
EnumNamesGeometryType()67 inline const char * const *EnumNamesGeometryType() {
68   static const char * const names[19] = {
69     "Unknown",
70     "Point",
71     "LineString",
72     "Polygon",
73     "MultiPoint",
74     "MultiLineString",
75     "MultiPolygon",
76     "GeometryCollection",
77     "CircularString",
78     "CompoundCurve",
79     "CurvePolygon",
80     "MultiCurve",
81     "MultiSurface",
82     "Curve",
83     "Surface",
84     "PolyhedralSurface",
85     "TIN",
86     "Triangle",
87     nullptr
88   };
89   return names;
90 }
91 
EnumNameGeometryType(GeometryType e)92 inline const char *EnumNameGeometryType(GeometryType e) {
93   if (flatbuffers::IsOutRange(e, GeometryType::Unknown, GeometryType::Triangle)) return "";
94   const size_t index = static_cast<size_t>(e);
95   return EnumNamesGeometryType()[index];
96 }
97 
98 enum class ColumnType : uint8_t {
99   Byte = 0,
100   UByte = 1,
101   Bool = 2,
102   Short = 3,
103   UShort = 4,
104   Int = 5,
105   UInt = 6,
106   Long = 7,
107   ULong = 8,
108   Float = 9,
109   Double = 10,
110   String = 11,
111   Json = 12,
112   DateTime = 13,
113   Binary = 14,
114   MIN = Byte,
115   MAX = Binary
116 };
117 
EnumValuesColumnType()118 inline const ColumnType (&EnumValuesColumnType())[15] {
119   static const ColumnType values[] = {
120     ColumnType::Byte,
121     ColumnType::UByte,
122     ColumnType::Bool,
123     ColumnType::Short,
124     ColumnType::UShort,
125     ColumnType::Int,
126     ColumnType::UInt,
127     ColumnType::Long,
128     ColumnType::ULong,
129     ColumnType::Float,
130     ColumnType::Double,
131     ColumnType::String,
132     ColumnType::Json,
133     ColumnType::DateTime,
134     ColumnType::Binary
135   };
136   return values;
137 }
138 
EnumNamesColumnType()139 inline const char * const *EnumNamesColumnType() {
140   static const char * const names[16] = {
141     "Byte",
142     "UByte",
143     "Bool",
144     "Short",
145     "UShort",
146     "Int",
147     "UInt",
148     "Long",
149     "ULong",
150     "Float",
151     "Double",
152     "String",
153     "Json",
154     "DateTime",
155     "Binary",
156     nullptr
157   };
158   return names;
159 }
160 
EnumNameColumnType(ColumnType e)161 inline const char *EnumNameColumnType(ColumnType e) {
162   if (flatbuffers::IsOutRange(e, ColumnType::Byte, ColumnType::Binary)) return "";
163   const size_t index = static_cast<size_t>(e);
164   return EnumNamesColumnType()[index];
165 }
166 
167 struct Column FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
168   typedef ColumnBuilder Builder;
169   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
170     VT_NAME = 4,
171     VT_TYPE = 6,
172     VT_TITLE = 8,
173     VT_DESCRIPTION = 10,
174     VT_WIDTH = 12,
175     VT_PRECISION = 14,
176     VT_SCALE = 16,
177     VT_NULLABLE = 18,
178     VT_UNIQUE = 20,
179     VT_PRIMARY_KEY = 22,
180     VT_METADATA = 24
181   };
nameFLATBUFFERS_FINAL_CLASS182   const flatbuffers::String *name() const {
183     return GetPointer<const flatbuffers::String *>(VT_NAME);
184   }
typeFLATBUFFERS_FINAL_CLASS185   FlatGeobuf::ColumnType type() const {
186     return static_cast<FlatGeobuf::ColumnType>(GetField<uint8_t>(VT_TYPE, 0));
187   }
titleFLATBUFFERS_FINAL_CLASS188   const flatbuffers::String *title() const {
189     return GetPointer<const flatbuffers::String *>(VT_TITLE);
190   }
descriptionFLATBUFFERS_FINAL_CLASS191   const flatbuffers::String *description() const {
192     return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
193   }
widthFLATBUFFERS_FINAL_CLASS194   int32_t width() const {
195     return GetField<int32_t>(VT_WIDTH, -1);
196   }
precisionFLATBUFFERS_FINAL_CLASS197   int32_t precision() const {
198     return GetField<int32_t>(VT_PRECISION, -1);
199   }
scaleFLATBUFFERS_FINAL_CLASS200   int32_t scale() const {
201     return GetField<int32_t>(VT_SCALE, -1);
202   }
nullableFLATBUFFERS_FINAL_CLASS203   bool nullable() const {
204     return GetField<uint8_t>(VT_NULLABLE, 1) != 0;
205   }
uniqueFLATBUFFERS_FINAL_CLASS206   bool unique() const {
207     return GetField<uint8_t>(VT_UNIQUE, 0) != 0;
208   }
primary_keyFLATBUFFERS_FINAL_CLASS209   bool primary_key() const {
210     return GetField<uint8_t>(VT_PRIMARY_KEY, 0) != 0;
211   }
metadataFLATBUFFERS_FINAL_CLASS212   const flatbuffers::String *metadata() const {
213     return GetPointer<const flatbuffers::String *>(VT_METADATA);
214   }
VerifyFLATBUFFERS_FINAL_CLASS215   bool Verify(flatbuffers::Verifier &verifier) const {
216     return VerifyTableStart(verifier) &&
217            VerifyOffsetRequired(verifier, VT_NAME) &&
218            verifier.VerifyString(name()) &&
219            VerifyField<uint8_t>(verifier, VT_TYPE) &&
220            VerifyOffset(verifier, VT_TITLE) &&
221            verifier.VerifyString(title()) &&
222            VerifyOffset(verifier, VT_DESCRIPTION) &&
223            verifier.VerifyString(description()) &&
224            VerifyField<int32_t>(verifier, VT_WIDTH) &&
225            VerifyField<int32_t>(verifier, VT_PRECISION) &&
226            VerifyField<int32_t>(verifier, VT_SCALE) &&
227            VerifyField<uint8_t>(verifier, VT_NULLABLE) &&
228            VerifyField<uint8_t>(verifier, VT_UNIQUE) &&
229            VerifyField<uint8_t>(verifier, VT_PRIMARY_KEY) &&
230            VerifyOffset(verifier, VT_METADATA) &&
231            verifier.VerifyString(metadata()) &&
232            verifier.EndTable();
233   }
234 };
235 
236 struct ColumnBuilder {
237   typedef Column Table;
238   flatbuffers::FlatBufferBuilder &fbb_;
239   flatbuffers::uoffset_t start_;
add_nameColumnBuilder240   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
241     fbb_.AddOffset(Column::VT_NAME, name);
242   }
add_typeColumnBuilder243   void add_type(FlatGeobuf::ColumnType type) {
244     fbb_.AddElement<uint8_t>(Column::VT_TYPE, static_cast<uint8_t>(type), 0);
245   }
add_titleColumnBuilder246   void add_title(flatbuffers::Offset<flatbuffers::String> title) {
247     fbb_.AddOffset(Column::VT_TITLE, title);
248   }
add_descriptionColumnBuilder249   void add_description(flatbuffers::Offset<flatbuffers::String> description) {
250     fbb_.AddOffset(Column::VT_DESCRIPTION, description);
251   }
add_widthColumnBuilder252   void add_width(int32_t width) {
253     fbb_.AddElement<int32_t>(Column::VT_WIDTH, width, -1);
254   }
add_precisionColumnBuilder255   void add_precision(int32_t precision) {
256     fbb_.AddElement<int32_t>(Column::VT_PRECISION, precision, -1);
257   }
add_scaleColumnBuilder258   void add_scale(int32_t scale) {
259     fbb_.AddElement<int32_t>(Column::VT_SCALE, scale, -1);
260   }
add_nullableColumnBuilder261   void add_nullable(bool nullable) {
262     fbb_.AddElement<uint8_t>(Column::VT_NULLABLE, static_cast<uint8_t>(nullable), 1);
263   }
add_uniqueColumnBuilder264   void add_unique(bool unique) {
265     fbb_.AddElement<uint8_t>(Column::VT_UNIQUE, static_cast<uint8_t>(unique), 0);
266   }
add_primary_keyColumnBuilder267   void add_primary_key(bool primary_key) {
268     fbb_.AddElement<uint8_t>(Column::VT_PRIMARY_KEY, static_cast<uint8_t>(primary_key), 0);
269   }
add_metadataColumnBuilder270   void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata) {
271     fbb_.AddOffset(Column::VT_METADATA, metadata);
272   }
ColumnBuilderColumnBuilder273   explicit ColumnBuilder(flatbuffers::FlatBufferBuilder &_fbb)
274         : fbb_(_fbb) {
275     start_ = fbb_.StartTable();
276   }
FinishColumnBuilder277   flatbuffers::Offset<Column> Finish() {
278     const auto end = fbb_.EndTable(start_);
279     auto o = flatbuffers::Offset<Column>(end);
280     fbb_.Required(o, Column::VT_NAME);
281     return o;
282   }
283 };
284 
285 inline flatbuffers::Offset<Column> CreateColumn(
286     flatbuffers::FlatBufferBuilder &_fbb,
287     flatbuffers::Offset<flatbuffers::String> name = 0,
288     FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,
289     flatbuffers::Offset<flatbuffers::String> title = 0,
290     flatbuffers::Offset<flatbuffers::String> description = 0,
291     int32_t width = -1,
292     int32_t precision = -1,
293     int32_t scale = -1,
294     bool nullable = true,
295     bool unique = false,
296     bool primary_key = false,
297     flatbuffers::Offset<flatbuffers::String> metadata = 0) {
298   ColumnBuilder builder_(_fbb);
299   builder_.add_metadata(metadata);
300   builder_.add_scale(scale);
301   builder_.add_precision(precision);
302   builder_.add_width(width);
303   builder_.add_description(description);
304   builder_.add_title(title);
305   builder_.add_name(name);
306   builder_.add_primary_key(primary_key);
307   builder_.add_unique(unique);
308   builder_.add_nullable(nullable);
309   builder_.add_type(type);
310   return builder_.Finish();
311 }
312 
313 inline flatbuffers::Offset<Column> CreateColumnDirect(
314     flatbuffers::FlatBufferBuilder &_fbb,
315     const char *name = nullptr,
316     FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,
317     const char *title = nullptr,
318     const char *description = nullptr,
319     int32_t width = -1,
320     int32_t precision = -1,
321     int32_t scale = -1,
322     bool nullable = true,
323     bool unique = false,
324     bool primary_key = false,
325     const char *metadata = nullptr) {
326   auto name__ = name ? _fbb.CreateString(name) : 0;
327   auto title__ = title ? _fbb.CreateString(title) : 0;
328   auto description__ = description ? _fbb.CreateString(description) : 0;
329   auto metadata__ = metadata ? _fbb.CreateString(metadata) : 0;
330   return FlatGeobuf::CreateColumn(
331       _fbb,
332       name__,
333       type,
334       title__,
335       description__,
336       width,
337       precision,
338       scale,
339       nullable,
340       unique,
341       primary_key,
342       metadata__);
343 }
344 
345 struct Crs FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
346   typedef CrsBuilder Builder;
347   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
348     VT_ORG = 4,
349     VT_CODE = 6,
350     VT_NAME = 8,
351     VT_DESCRIPTION = 10,
352     VT_WKT = 12,
353     VT_CODE_STRING = 14
354   };
orgFLATBUFFERS_FINAL_CLASS355   const flatbuffers::String *org() const {
356     return GetPointer<const flatbuffers::String *>(VT_ORG);
357   }
codeFLATBUFFERS_FINAL_CLASS358   int32_t code() const {
359     return GetField<int32_t>(VT_CODE, 0);
360   }
nameFLATBUFFERS_FINAL_CLASS361   const flatbuffers::String *name() const {
362     return GetPointer<const flatbuffers::String *>(VT_NAME);
363   }
descriptionFLATBUFFERS_FINAL_CLASS364   const flatbuffers::String *description() const {
365     return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
366   }
wktFLATBUFFERS_FINAL_CLASS367   const flatbuffers::String *wkt() const {
368     return GetPointer<const flatbuffers::String *>(VT_WKT);
369   }
code_stringFLATBUFFERS_FINAL_CLASS370   const flatbuffers::String *code_string() const {
371     return GetPointer<const flatbuffers::String *>(VT_CODE_STRING);
372   }
VerifyFLATBUFFERS_FINAL_CLASS373   bool Verify(flatbuffers::Verifier &verifier) const {
374     return VerifyTableStart(verifier) &&
375            VerifyOffset(verifier, VT_ORG) &&
376            verifier.VerifyString(org()) &&
377            VerifyField<int32_t>(verifier, VT_CODE) &&
378            VerifyOffset(verifier, VT_NAME) &&
379            verifier.VerifyString(name()) &&
380            VerifyOffset(verifier, VT_DESCRIPTION) &&
381            verifier.VerifyString(description()) &&
382            VerifyOffset(verifier, VT_WKT) &&
383            verifier.VerifyString(wkt()) &&
384            VerifyOffset(verifier, VT_CODE_STRING) &&
385            verifier.VerifyString(code_string()) &&
386            verifier.EndTable();
387   }
388 };
389 
390 struct CrsBuilder {
391   typedef Crs Table;
392   flatbuffers::FlatBufferBuilder &fbb_;
393   flatbuffers::uoffset_t start_;
add_orgCrsBuilder394   void add_org(flatbuffers::Offset<flatbuffers::String> org) {
395     fbb_.AddOffset(Crs::VT_ORG, org);
396   }
add_codeCrsBuilder397   void add_code(int32_t code) {
398     fbb_.AddElement<int32_t>(Crs::VT_CODE, code, 0);
399   }
add_nameCrsBuilder400   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
401     fbb_.AddOffset(Crs::VT_NAME, name);
402   }
add_descriptionCrsBuilder403   void add_description(flatbuffers::Offset<flatbuffers::String> description) {
404     fbb_.AddOffset(Crs::VT_DESCRIPTION, description);
405   }
add_wktCrsBuilder406   void add_wkt(flatbuffers::Offset<flatbuffers::String> wkt) {
407     fbb_.AddOffset(Crs::VT_WKT, wkt);
408   }
add_code_stringCrsBuilder409   void add_code_string(flatbuffers::Offset<flatbuffers::String> code_string) {
410     fbb_.AddOffset(Crs::VT_CODE_STRING, code_string);
411   }
CrsBuilderCrsBuilder412   explicit CrsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
413         : fbb_(_fbb) {
414     start_ = fbb_.StartTable();
415   }
FinishCrsBuilder416   flatbuffers::Offset<Crs> Finish() {
417     const auto end = fbb_.EndTable(start_);
418     auto o = flatbuffers::Offset<Crs>(end);
419     return o;
420   }
421 };
422 
423 inline flatbuffers::Offset<Crs> CreateCrs(
424     flatbuffers::FlatBufferBuilder &_fbb,
425     flatbuffers::Offset<flatbuffers::String> org = 0,
426     int32_t code = 0,
427     flatbuffers::Offset<flatbuffers::String> name = 0,
428     flatbuffers::Offset<flatbuffers::String> description = 0,
429     flatbuffers::Offset<flatbuffers::String> wkt = 0,
430     flatbuffers::Offset<flatbuffers::String> code_string = 0) {
431   CrsBuilder builder_(_fbb);
432   builder_.add_code_string(code_string);
433   builder_.add_wkt(wkt);
434   builder_.add_description(description);
435   builder_.add_name(name);
436   builder_.add_code(code);
437   builder_.add_org(org);
438   return builder_.Finish();
439 }
440 
441 inline flatbuffers::Offset<Crs> CreateCrsDirect(
442     flatbuffers::FlatBufferBuilder &_fbb,
443     const char *org = nullptr,
444     int32_t code = 0,
445     const char *name = nullptr,
446     const char *description = nullptr,
447     const char *wkt = nullptr,
448     const char *code_string = nullptr) {
449   auto org__ = org ? _fbb.CreateString(org) : 0;
450   auto name__ = name ? _fbb.CreateString(name) : 0;
451   auto description__ = description ? _fbb.CreateString(description) : 0;
452   auto wkt__ = wkt ? _fbb.CreateString(wkt) : 0;
453   auto code_string__ = code_string ? _fbb.CreateString(code_string) : 0;
454   return FlatGeobuf::CreateCrs(
455       _fbb,
456       org__,
457       code,
458       name__,
459       description__,
460       wkt__,
461       code_string__);
462 }
463 
464 struct Header FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
465   typedef HeaderBuilder Builder;
466   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
467     VT_NAME = 4,
468     VT_ENVELOPE = 6,
469     VT_GEOMETRY_TYPE = 8,
470     VT_HAS_Z = 10,
471     VT_HAS_M = 12,
472     VT_HAS_T = 14,
473     VT_HAS_TM = 16,
474     VT_COLUMNS = 18,
475     VT_FEATURES_COUNT = 20,
476     VT_INDEX_NODE_SIZE = 22,
477     VT_CRS = 24,
478     VT_TITLE = 26,
479     VT_DESCRIPTION = 28,
480     VT_METADATA = 30
481   };
nameFLATBUFFERS_FINAL_CLASS482   const flatbuffers::String *name() const {
483     return GetPointer<const flatbuffers::String *>(VT_NAME);
484   }
envelopeFLATBUFFERS_FINAL_CLASS485   const flatbuffers::Vector<double> *envelope() const {
486     return GetPointer<const flatbuffers::Vector<double> *>(VT_ENVELOPE);
487   }
geometry_typeFLATBUFFERS_FINAL_CLASS488   FlatGeobuf::GeometryType geometry_type() const {
489     return static_cast<FlatGeobuf::GeometryType>(GetField<uint8_t>(VT_GEOMETRY_TYPE, 0));
490   }
has_zFLATBUFFERS_FINAL_CLASS491   bool has_z() const {
492     return GetField<uint8_t>(VT_HAS_Z, 0) != 0;
493   }
has_mFLATBUFFERS_FINAL_CLASS494   bool has_m() const {
495     return GetField<uint8_t>(VT_HAS_M, 0) != 0;
496   }
has_tFLATBUFFERS_FINAL_CLASS497   bool has_t() const {
498     return GetField<uint8_t>(VT_HAS_T, 0) != 0;
499   }
has_tmFLATBUFFERS_FINAL_CLASS500   bool has_tm() const {
501     return GetField<uint8_t>(VT_HAS_TM, 0) != 0;
502   }
columnsFLATBUFFERS_FINAL_CLASS503   const flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>> *columns() const {
504     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>> *>(VT_COLUMNS);
505   }
features_countFLATBUFFERS_FINAL_CLASS506   uint64_t features_count() const {
507     return GetField<uint64_t>(VT_FEATURES_COUNT, 0);
508   }
index_node_sizeFLATBUFFERS_FINAL_CLASS509   uint16_t index_node_size() const {
510     return GetField<uint16_t>(VT_INDEX_NODE_SIZE, 16);
511   }
crsFLATBUFFERS_FINAL_CLASS512   const FlatGeobuf::Crs *crs() const {
513     return GetPointer<const FlatGeobuf::Crs *>(VT_CRS);
514   }
titleFLATBUFFERS_FINAL_CLASS515   const flatbuffers::String *title() const {
516     return GetPointer<const flatbuffers::String *>(VT_TITLE);
517   }
descriptionFLATBUFFERS_FINAL_CLASS518   const flatbuffers::String *description() const {
519     return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
520   }
metadataFLATBUFFERS_FINAL_CLASS521   const flatbuffers::String *metadata() const {
522     return GetPointer<const flatbuffers::String *>(VT_METADATA);
523   }
VerifyFLATBUFFERS_FINAL_CLASS524   bool Verify(flatbuffers::Verifier &verifier) const {
525     return VerifyTableStart(verifier) &&
526            VerifyOffset(verifier, VT_NAME) &&
527            verifier.VerifyString(name()) &&
528            VerifyOffset(verifier, VT_ENVELOPE) &&
529            verifier.VerifyVector(envelope()) &&
530            VerifyField<uint8_t>(verifier, VT_GEOMETRY_TYPE) &&
531            VerifyField<uint8_t>(verifier, VT_HAS_Z) &&
532            VerifyField<uint8_t>(verifier, VT_HAS_M) &&
533            VerifyField<uint8_t>(verifier, VT_HAS_T) &&
534            VerifyField<uint8_t>(verifier, VT_HAS_TM) &&
535            VerifyOffset(verifier, VT_COLUMNS) &&
536            verifier.VerifyVector(columns()) &&
537            verifier.VerifyVectorOfTables(columns()) &&
538            VerifyField<uint64_t>(verifier, VT_FEATURES_COUNT) &&
539            VerifyField<uint16_t>(verifier, VT_INDEX_NODE_SIZE) &&
540            VerifyOffset(verifier, VT_CRS) &&
541            verifier.VerifyTable(crs()) &&
542            VerifyOffset(verifier, VT_TITLE) &&
543            verifier.VerifyString(title()) &&
544            VerifyOffset(verifier, VT_DESCRIPTION) &&
545            verifier.VerifyString(description()) &&
546            VerifyOffset(verifier, VT_METADATA) &&
547            verifier.VerifyString(metadata()) &&
548            verifier.EndTable();
549   }
550 };
551 
552 struct HeaderBuilder {
553   typedef Header Table;
554   flatbuffers::FlatBufferBuilder &fbb_;
555   flatbuffers::uoffset_t start_;
add_nameHeaderBuilder556   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
557     fbb_.AddOffset(Header::VT_NAME, name);
558   }
add_envelopeHeaderBuilder559   void add_envelope(flatbuffers::Offset<flatbuffers::Vector<double>> envelope) {
560     fbb_.AddOffset(Header::VT_ENVELOPE, envelope);
561   }
add_geometry_typeHeaderBuilder562   void add_geometry_type(FlatGeobuf::GeometryType geometry_type) {
563     fbb_.AddElement<uint8_t>(Header::VT_GEOMETRY_TYPE, static_cast<uint8_t>(geometry_type), 0);
564   }
add_has_zHeaderBuilder565   void add_has_z(bool has_z) {
566     fbb_.AddElement<uint8_t>(Header::VT_HAS_Z, static_cast<uint8_t>(has_z), 0);
567   }
add_has_mHeaderBuilder568   void add_has_m(bool has_m) {
569     fbb_.AddElement<uint8_t>(Header::VT_HAS_M, static_cast<uint8_t>(has_m), 0);
570   }
add_has_tHeaderBuilder571   void add_has_t(bool has_t) {
572     fbb_.AddElement<uint8_t>(Header::VT_HAS_T, static_cast<uint8_t>(has_t), 0);
573   }
add_has_tmHeaderBuilder574   void add_has_tm(bool has_tm) {
575     fbb_.AddElement<uint8_t>(Header::VT_HAS_TM, static_cast<uint8_t>(has_tm), 0);
576   }
add_columnsHeaderBuilder577   void add_columns(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>> columns) {
578     fbb_.AddOffset(Header::VT_COLUMNS, columns);
579   }
add_features_countHeaderBuilder580   void add_features_count(uint64_t features_count) {
581     fbb_.AddElement<uint64_t>(Header::VT_FEATURES_COUNT, features_count, 0);
582   }
add_index_node_sizeHeaderBuilder583   void add_index_node_size(uint16_t index_node_size) {
584     fbb_.AddElement<uint16_t>(Header::VT_INDEX_NODE_SIZE, index_node_size, 16);
585   }
add_crsHeaderBuilder586   void add_crs(flatbuffers::Offset<FlatGeobuf::Crs> crs) {
587     fbb_.AddOffset(Header::VT_CRS, crs);
588   }
add_titleHeaderBuilder589   void add_title(flatbuffers::Offset<flatbuffers::String> title) {
590     fbb_.AddOffset(Header::VT_TITLE, title);
591   }
add_descriptionHeaderBuilder592   void add_description(flatbuffers::Offset<flatbuffers::String> description) {
593     fbb_.AddOffset(Header::VT_DESCRIPTION, description);
594   }
add_metadataHeaderBuilder595   void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata) {
596     fbb_.AddOffset(Header::VT_METADATA, metadata);
597   }
HeaderBuilderHeaderBuilder598   explicit HeaderBuilder(flatbuffers::FlatBufferBuilder &_fbb)
599         : fbb_(_fbb) {
600     start_ = fbb_.StartTable();
601   }
FinishHeaderBuilder602   flatbuffers::Offset<Header> Finish() {
603     const auto end = fbb_.EndTable(start_);
604     auto o = flatbuffers::Offset<Header>(end);
605     return o;
606   }
607 };
608 
609 inline flatbuffers::Offset<Header> CreateHeader(
610     flatbuffers::FlatBufferBuilder &_fbb,
611     flatbuffers::Offset<flatbuffers::String> name = 0,
612     flatbuffers::Offset<flatbuffers::Vector<double>> envelope = 0,
613     FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,
614     bool has_z = false,
615     bool has_m = false,
616     bool has_t = false,
617     bool has_tm = false,
618     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>> columns = 0,
619     uint64_t features_count = 0,
620     uint16_t index_node_size = 16,
621     flatbuffers::Offset<FlatGeobuf::Crs> crs = 0,
622     flatbuffers::Offset<flatbuffers::String> title = 0,
623     flatbuffers::Offset<flatbuffers::String> description = 0,
624     flatbuffers::Offset<flatbuffers::String> metadata = 0) {
625   HeaderBuilder builder_(_fbb);
626   builder_.add_features_count(features_count);
627   builder_.add_metadata(metadata);
628   builder_.add_description(description);
629   builder_.add_title(title);
630   builder_.add_crs(crs);
631   builder_.add_columns(columns);
632   builder_.add_envelope(envelope);
633   builder_.add_name(name);
634   builder_.add_index_node_size(index_node_size);
635   builder_.add_has_tm(has_tm);
636   builder_.add_has_t(has_t);
637   builder_.add_has_m(has_m);
638   builder_.add_has_z(has_z);
639   builder_.add_geometry_type(geometry_type);
640   return builder_.Finish();
641 }
642 
643 inline flatbuffers::Offset<Header> CreateHeaderDirect(
644     flatbuffers::FlatBufferBuilder &_fbb,
645     const char *name = nullptr,
646     const std::vector<double> *envelope = nullptr,
647     FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,
648     bool has_z = false,
649     bool has_m = false,
650     bool has_t = false,
651     bool has_tm = false,
652     const std::vector<flatbuffers::Offset<FlatGeobuf::Column>> *columns = nullptr,
653     uint64_t features_count = 0,
654     uint16_t index_node_size = 16,
655     flatbuffers::Offset<FlatGeobuf::Crs> crs = 0,
656     const char *title = nullptr,
657     const char *description = nullptr,
658     const char *metadata = nullptr) {
659   auto name__ = name ? _fbb.CreateString(name) : 0;
660   auto envelope__ = envelope ? _fbb.CreateVector<double>(*envelope) : 0;
661   auto columns__ = columns ? _fbb.CreateVector<flatbuffers::Offset<FlatGeobuf::Column>>(*columns) : 0;
662   auto title__ = title ? _fbb.CreateString(title) : 0;
663   auto description__ = description ? _fbb.CreateString(description) : 0;
664   auto metadata__ = metadata ? _fbb.CreateString(metadata) : 0;
665   return FlatGeobuf::CreateHeader(
666       _fbb,
667       name__,
668       envelope__,
669       geometry_type,
670       has_z,
671       has_m,
672       has_t,
673       has_tm,
674       columns__,
675       features_count,
676       index_node_size,
677       crs,
678       title__,
679       description__,
680       metadata__);
681 }
682 
GetHeader(const void * buf)683 inline const FlatGeobuf::Header *GetHeader(const void *buf) {
684   return flatbuffers::GetRoot<FlatGeobuf::Header>(buf);
685 }
686 
GetSizePrefixedHeader(const void * buf)687 inline const FlatGeobuf::Header *GetSizePrefixedHeader(const void *buf) {
688   return flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Header>(buf);
689 }
690 
VerifyHeaderBuffer(flatbuffers::Verifier & verifier)691 inline bool VerifyHeaderBuffer(
692     flatbuffers::Verifier &verifier) {
693   return verifier.VerifyBuffer<FlatGeobuf::Header>(nullptr);
694 }
695 
VerifySizePrefixedHeaderBuffer(flatbuffers::Verifier & verifier)696 inline bool VerifySizePrefixedHeaderBuffer(
697     flatbuffers::Verifier &verifier) {
698   return verifier.VerifySizePrefixedBuffer<FlatGeobuf::Header>(nullptr);
699 }
700 
FinishHeaderBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<FlatGeobuf::Header> root)701 inline void FinishHeaderBuffer(
702     flatbuffers::FlatBufferBuilder &fbb,
703     flatbuffers::Offset<FlatGeobuf::Header> root) {
704   fbb.Finish(root);
705 }
706 
FinishSizePrefixedHeaderBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<FlatGeobuf::Header> root)707 inline void FinishSizePrefixedHeaderBuffer(
708     flatbuffers::FlatBufferBuilder &fbb,
709     flatbuffers::Offset<FlatGeobuf::Header> root) {
710   fbb.FinishSizePrefixed(root);
711 }
712 
713 }  // namespace FlatGeobuf
714 
715 #endif  // FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
716