Coverage Report

Created: 2026-11-12 08:28

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h
Line
Count
Source
1
// automatically generated by the FlatBuffers compiler, do not modify
2
3
#ifndef FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
4
#define FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_
5
6
#include "flatbuffers/flatbuffers.h"
7
8
// Ensure the included flatbuffers.h is the same version as when this file was
9
// generated, otherwise it may not be compatible.
10
static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
11
                  FLATBUFFERS_VERSION_MINOR == 0 &&
12
                  FLATBUFFERS_VERSION_REVISION == 8,
13
              "Non-compatible flatbuffers version included");
14
15
namespace FlatGeobuf
16
{
17
18
struct Column;
19
struct ColumnBuilder;
20
21
struct Crs;
22
struct CrsBuilder;
23
24
struct Header;
25
struct HeaderBuilder;
26
27
enum class GeometryType : uint8_t
28
{
29
    Unknown = 0,
30
    Point = 1,
31
    LineString = 2,
32
    Polygon = 3,
33
    MultiPoint = 4,
34
    MultiLineString = 5,
35
    MultiPolygon = 6,
36
    GeometryCollection = 7,
37
    CircularString = 8,
38
    CompoundCurve = 9,
39
    CurvePolygon = 10,
40
    MultiCurve = 11,
41
    MultiSurface = 12,
42
    Curve = 13,
43
    Surface = 14,
44
    PolyhedralSurface = 15,
45
    TIN = 16,
46
    Triangle = 17,
47
    MIN = Unknown,
48
    MAX = Triangle
49
};
50
51
inline const GeometryType (&EnumValuesGeometryType())[18]
52
0
{
53
0
    static const GeometryType values[] = {GeometryType::Unknown,
54
0
                                          GeometryType::Point,
55
0
                                          GeometryType::LineString,
56
0
                                          GeometryType::Polygon,
57
0
                                          GeometryType::MultiPoint,
58
0
                                          GeometryType::MultiLineString,
59
0
                                          GeometryType::MultiPolygon,
60
0
                                          GeometryType::GeometryCollection,
61
0
                                          GeometryType::CircularString,
62
0
                                          GeometryType::CompoundCurve,
63
0
                                          GeometryType::CurvePolygon,
64
0
                                          GeometryType::MultiCurve,
65
0
                                          GeometryType::MultiSurface,
66
0
                                          GeometryType::Curve,
67
0
                                          GeometryType::Surface,
68
0
                                          GeometryType::PolyhedralSurface,
69
0
                                          GeometryType::TIN,
70
0
                                          GeometryType::Triangle};
71
0
    return values;
72
0
}
73
74
inline const char *const *EnumNamesGeometryType()
75
0
{
76
0
    static const char *const names[19] = {"Unknown",
77
0
                                          "Point",
78
0
                                          "LineString",
79
0
                                          "Polygon",
80
0
                                          "MultiPoint",
81
0
                                          "MultiLineString",
82
0
                                          "MultiPolygon",
83
0
                                          "GeometryCollection",
84
0
                                          "CircularString",
85
0
                                          "CompoundCurve",
86
0
                                          "CurvePolygon",
87
0
                                          "MultiCurve",
88
0
                                          "MultiSurface",
89
0
                                          "Curve",
90
0
                                          "Surface",
91
0
                                          "PolyhedralSurface",
92
0
                                          "TIN",
93
0
                                          "Triangle",
94
0
                                          nullptr};
95
0
    return names;
96
0
}
97
98
inline const char *EnumNameGeometryType(GeometryType e)
99
0
{
100
0
    if (flatbuffers::IsOutRange(e, GeometryType::Unknown,
101
0
                                GeometryType::Triangle))
102
0
        return "";
103
0
    const size_t index = static_cast<size_t>(e);
104
0
    return EnumNamesGeometryType()[index];
105
0
}
106
107
enum class ColumnType : uint8_t
108
{
109
    Byte = 0,
110
    UByte = 1,
111
    Bool = 2,
112
    Short = 3,
113
    UShort = 4,
114
    Int = 5,
115
    UInt = 6,
116
    Long = 7,
117
    ULong = 8,
118
    Float = 9,
119
    Double = 10,
120
    String = 11,
121
    Json = 12,
122
    DateTime = 13,
123
    Binary = 14,
124
    MIN = Byte,
125
    MAX = Binary
126
};
127
128
inline const ColumnType (&EnumValuesColumnType())[15]
129
0
{
130
0
    static const ColumnType values[] = {
131
0
        ColumnType::Byte,  ColumnType::UByte,    ColumnType::Bool,
132
0
        ColumnType::Short, ColumnType::UShort,   ColumnType::Int,
133
0
        ColumnType::UInt,  ColumnType::Long,     ColumnType::ULong,
134
0
        ColumnType::Float, ColumnType::Double,   ColumnType::String,
135
0
        ColumnType::Json,  ColumnType::DateTime, ColumnType::Binary};
136
0
    return values;
137
0
}
138
139
inline const char *const *EnumNamesColumnType()
140
0
{
141
0
    static const char *const names[16] = {
142
0
        "Byte", "UByte",    "Bool",   "Short", "UShort", "Int",
143
0
        "UInt", "Long",     "ULong",  "Float", "Double", "String",
144
0
        "Json", "DateTime", "Binary", nullptr};
145
0
    return names;
146
0
}
147
148
inline const char *EnumNameColumnType(ColumnType e)
149
0
{
150
0
    if (flatbuffers::IsOutRange(e, ColumnType::Byte, ColumnType::Binary))
151
0
        return "";
152
0
    const size_t index = static_cast<size_t>(e);
153
0
    return EnumNamesColumnType()[index];
154
0
}
155
156
struct Column FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table
157
{
158
    typedef ColumnBuilder Builder;
159
160
    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE
161
    {
162
        VT_NAME = 4,
163
        VT_TYPE = 6,
164
        VT_TITLE = 8,
165
        VT_DESCRIPTION = 10,
166
        VT_WIDTH = 12,
167
        VT_PRECISION = 14,
168
        VT_SCALE = 16,
169
        VT_NULLABLE = 18,
170
        VT_UNIQUE = 20,
171
        VT_PRIMARY_KEY = 22,
172
        VT_METADATA = 24
173
    };
174
175
    const flatbuffers::String *name() const
176
21.8k
    {
177
21.8k
        return GetPointer<const flatbuffers::String *>(VT_NAME);
178
21.8k
    }
179
180
    FlatGeobuf::ColumnType type() const
181
23.4k
    {
182
23.4k
        return static_cast<FlatGeobuf::ColumnType>(
183
23.4k
            GetField<uint8_t>(VT_TYPE, 0));
184
23.4k
    }
185
186
    const flatbuffers::String *title() const
187
21.9k
    {
188
21.9k
        return GetPointer<const flatbuffers::String *>(VT_TITLE);
189
21.9k
    }
190
191
    const flatbuffers::String *description() const
192
21.8k
    {
193
21.8k
        return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
194
21.8k
    }
195
196
    int32_t width() const
197
10.8k
    {
198
10.8k
        return GetField<int32_t>(VT_WIDTH, -1);
199
10.8k
    }
200
201
    int32_t precision() const
202
10.8k
    {
203
10.8k
        return GetField<int32_t>(VT_PRECISION, -1);
204
10.8k
    }
205
206
    int32_t scale() const
207
10.8k
    {
208
10.8k
        return GetField<int32_t>(VT_SCALE, -1);
209
10.8k
    }
210
211
    bool nullable() const
212
10.8k
    {
213
10.8k
        return GetField<uint8_t>(VT_NULLABLE, 1) != 0;
214
10.8k
    }
215
216
    bool unique() const
217
10.8k
    {
218
10.8k
        return GetField<uint8_t>(VT_UNIQUE, 0) != 0;
219
10.8k
    }
220
221
    bool primary_key() const
222
0
    {
223
0
        return GetField<uint8_t>(VT_PRIMARY_KEY, 0) != 0;
224
0
    }
225
226
    const flatbuffers::String *metadata() const
227
10.9k
    {
228
10.9k
        return GetPointer<const flatbuffers::String *>(VT_METADATA);
229
10.9k
    }
230
231
    bool Verify(flatbuffers::Verifier &verifier) const
232
11.0k
    {
233
11.0k
        return VerifyTableStart(verifier) &&
234
11.0k
               VerifyOffsetRequired(verifier, VT_NAME) &&
235
11.0k
               verifier.VerifyString(name()) &&
236
11.0k
               VerifyField<uint8_t>(verifier, VT_TYPE, 1) &&
237
11.0k
               VerifyOffset(verifier, VT_TITLE) &&
238
10.9k
               verifier.VerifyString(title()) &&
239
10.9k
               VerifyOffset(verifier, VT_DESCRIPTION) &&
240
10.9k
               verifier.VerifyString(description()) &&
241
10.9k
               VerifyField<int32_t>(verifier, VT_WIDTH, 4) &&
242
10.9k
               VerifyField<int32_t>(verifier, VT_PRECISION, 4) &&
243
10.9k
               VerifyField<int32_t>(verifier, VT_SCALE, 4) &&
244
10.9k
               VerifyField<uint8_t>(verifier, VT_NULLABLE, 1) &&
245
10.9k
               VerifyField<uint8_t>(verifier, VT_UNIQUE, 1) &&
246
10.9k
               VerifyField<uint8_t>(verifier, VT_PRIMARY_KEY, 1) &&
247
10.9k
               VerifyOffset(verifier, VT_METADATA) &&
248
10.9k
               verifier.VerifyString(metadata()) && verifier.EndTable();
249
11.0k
    }
250
};
251
252
struct ColumnBuilder
253
{
254
    typedef Column Table;
255
    flatbuffers::FlatBufferBuilder &fbb_;
256
    flatbuffers::uoffset_t start_;
257
258
    void add_name(flatbuffers::Offset<flatbuffers::String> name)
259
9.14k
    {
260
9.14k
        fbb_.AddOffset(Column::VT_NAME, name);
261
9.14k
    }
262
263
    void add_type(FlatGeobuf::ColumnType type)
264
9.14k
    {
265
9.14k
        fbb_.AddElement<uint8_t>(Column::VT_TYPE, static_cast<uint8_t>(type),
266
9.14k
                                 0);
267
9.14k
    }
268
269
    void add_title(flatbuffers::Offset<flatbuffers::String> title)
270
9.14k
    {
271
9.14k
        fbb_.AddOffset(Column::VT_TITLE, title);
272
9.14k
    }
273
274
    void add_description(flatbuffers::Offset<flatbuffers::String> description)
275
9.14k
    {
276
9.14k
        fbb_.AddOffset(Column::VT_DESCRIPTION, description);
277
9.14k
    }
278
279
    void add_width(int32_t width)
280
9.14k
    {
281
9.14k
        fbb_.AddElement<int32_t>(Column::VT_WIDTH, width, -1);
282
9.14k
    }
283
284
    void add_precision(int32_t precision)
285
9.14k
    {
286
9.14k
        fbb_.AddElement<int32_t>(Column::VT_PRECISION, precision, -1);
287
9.14k
    }
288
289
    void add_scale(int32_t scale)
290
9.14k
    {
291
9.14k
        fbb_.AddElement<int32_t>(Column::VT_SCALE, scale, -1);
292
9.14k
    }
293
294
    void add_nullable(bool nullable)
295
9.14k
    {
296
9.14k
        fbb_.AddElement<uint8_t>(Column::VT_NULLABLE,
297
9.14k
                                 static_cast<uint8_t>(nullable), 1);
298
9.14k
    }
299
300
    void add_unique(bool unique)
301
9.14k
    {
302
9.14k
        fbb_.AddElement<uint8_t>(Column::VT_UNIQUE,
303
9.14k
                                 static_cast<uint8_t>(unique), 0);
304
9.14k
    }
305
306
    void add_primary_key(bool primary_key)
307
9.14k
    {
308
9.14k
        fbb_.AddElement<uint8_t>(Column::VT_PRIMARY_KEY,
309
9.14k
                                 static_cast<uint8_t>(primary_key), 0);
310
9.14k
    }
311
312
    void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata)
313
9.14k
    {
314
9.14k
        fbb_.AddOffset(Column::VT_METADATA, metadata);
315
9.14k
    }
316
317
9.14k
    explicit ColumnBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb)
318
9.14k
    {
319
9.14k
        start_ = fbb_.StartTable();
320
9.14k
    }
321
322
    flatbuffers::Offset<Column> Finish()
323
9.14k
    {
324
9.14k
        const auto end = fbb_.EndTable(start_);
325
9.14k
        auto o = flatbuffers::Offset<Column>(end);
326
9.14k
        fbb_.Required(o, Column::VT_NAME);
327
9.14k
        return o;
328
9.14k
    }
329
};
330
331
inline flatbuffers::Offset<Column>
332
CreateColumn(flatbuffers::FlatBufferBuilder &_fbb,
333
             flatbuffers::Offset<flatbuffers::String> name = 0,
334
             FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,
335
             flatbuffers::Offset<flatbuffers::String> title = 0,
336
             flatbuffers::Offset<flatbuffers::String> description = 0,
337
             int32_t width = -1, int32_t precision = -1, int32_t scale = -1,
338
             bool nullable = true, bool unique = false,
339
             bool primary_key = false,
340
             flatbuffers::Offset<flatbuffers::String> metadata = 0)
341
9.14k
{
342
9.14k
    ColumnBuilder builder_(_fbb);
343
9.14k
    builder_.add_metadata(metadata);
344
9.14k
    builder_.add_scale(scale);
345
9.14k
    builder_.add_precision(precision);
346
9.14k
    builder_.add_width(width);
347
9.14k
    builder_.add_description(description);
348
9.14k
    builder_.add_title(title);
349
9.14k
    builder_.add_name(name);
350
9.14k
    builder_.add_primary_key(primary_key);
351
9.14k
    builder_.add_unique(unique);
352
9.14k
    builder_.add_nullable(nullable);
353
9.14k
    builder_.add_type(type);
354
9.14k
    return builder_.Finish();
355
9.14k
}
356
357
inline flatbuffers::Offset<Column> CreateColumnDirect(
358
    flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr,
359
    FlatGeobuf::ColumnType type = FlatGeobuf::ColumnType::Byte,
360
    const char *title = nullptr, const char *description = nullptr,
361
    int32_t width = -1, int32_t precision = -1, int32_t scale = -1,
362
    bool nullable = true, bool unique = false, bool primary_key = false,
363
    const char *metadata = nullptr)
364
9.14k
{
365
9.14k
    auto name__ = name ? _fbb.CreateString(name) : 0;
366
9.14k
    auto title__ = title ? _fbb.CreateString(title) : 0;
367
9.14k
    auto description__ = description ? _fbb.CreateString(description) : 0;
368
9.14k
    auto metadata__ = metadata ? _fbb.CreateString(metadata) : 0;
369
9.14k
    return FlatGeobuf::CreateColumn(_fbb, name__, type, title__, description__,
370
9.14k
                                    width, precision, scale, nullable, unique,
371
9.14k
                                    primary_key, metadata__);
372
9.14k
}
373
374
struct Crs FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table
375
{
376
    typedef CrsBuilder Builder;
377
378
    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE
379
    {
380
        VT_ORG = 4,
381
        VT_CODE = 6,
382
        VT_NAME = 8,
383
        VT_DESCRIPTION = 10,
384
        VT_WKT = 12,
385
        VT_CODE_STRING = 14
386
    };
387
388
    const flatbuffers::String *org() const
389
28.7k
    {
390
28.7k
        return GetPointer<const flatbuffers::String *>(VT_ORG);
391
28.7k
    }
392
393
    int32_t code() const
394
14.2k
    {
395
14.2k
        return GetField<int32_t>(VT_CODE, 0);
396
14.2k
    }
397
398
    const flatbuffers::String *name() const
399
14.3k
    {
400
14.3k
        return GetPointer<const flatbuffers::String *>(VT_NAME);
401
14.3k
    }
402
403
    const flatbuffers::String *description() const
404
14.3k
    {
405
14.3k
        return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
406
14.3k
    }
407
408
    const flatbuffers::String *wkt() const
409
28.6k
    {
410
28.6k
        return GetPointer<const flatbuffers::String *>(VT_WKT);
411
28.6k
    }
412
413
    const flatbuffers::String *code_string() const
414
14.3k
    {
415
14.3k
        return GetPointer<const flatbuffers::String *>(VT_CODE_STRING);
416
14.3k
    }
417
418
    bool Verify(flatbuffers::Verifier &verifier) const
419
14.4k
    {
420
14.4k
        return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ORG) &&
421
14.4k
               verifier.VerifyString(org()) &&
422
14.3k
               VerifyField<int32_t>(verifier, VT_CODE, 4) &&
423
14.3k
               VerifyOffset(verifier, VT_NAME) &&
424
14.3k
               verifier.VerifyString(name()) &&
425
14.3k
               VerifyOffset(verifier, VT_DESCRIPTION) &&
426
14.3k
               verifier.VerifyString(description()) &&
427
14.3k
               VerifyOffset(verifier, VT_WKT) && verifier.VerifyString(wkt()) &&
428
14.3k
               VerifyOffset(verifier, VT_CODE_STRING) &&
429
14.3k
               verifier.VerifyString(code_string()) && verifier.EndTable();
430
14.4k
    }
431
};
432
433
struct CrsBuilder
434
{
435
    typedef Crs Table;
436
    flatbuffers::FlatBufferBuilder &fbb_;
437
    flatbuffers::uoffset_t start_;
438
439
    void add_org(flatbuffers::Offset<flatbuffers::String> org)
440
10
    {
441
10
        fbb_.AddOffset(Crs::VT_ORG, org);
442
10
    }
443
444
    void add_code(int32_t code)
445
10
    {
446
10
        fbb_.AddElement<int32_t>(Crs::VT_CODE, code, 0);
447
10
    }
448
449
    void add_name(flatbuffers::Offset<flatbuffers::String> name)
450
10
    {
451
10
        fbb_.AddOffset(Crs::VT_NAME, name);
452
10
    }
453
454
    void add_description(flatbuffers::Offset<flatbuffers::String> description)
455
10
    {
456
10
        fbb_.AddOffset(Crs::VT_DESCRIPTION, description);
457
10
    }
458
459
    void add_wkt(flatbuffers::Offset<flatbuffers::String> wkt)
460
10
    {
461
10
        fbb_.AddOffset(Crs::VT_WKT, wkt);
462
10
    }
463
464
    void add_code_string(flatbuffers::Offset<flatbuffers::String> code_string)
465
10
    {
466
10
        fbb_.AddOffset(Crs::VT_CODE_STRING, code_string);
467
10
    }
468
469
10
    explicit CrsBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb)
470
10
    {
471
10
        start_ = fbb_.StartTable();
472
10
    }
473
474
    flatbuffers::Offset<Crs> Finish()
475
10
    {
476
10
        const auto end = fbb_.EndTable(start_);
477
10
        auto o = flatbuffers::Offset<Crs>(end);
478
10
        return o;
479
10
    }
480
};
481
482
inline flatbuffers::Offset<Crs>
483
CreateCrs(flatbuffers::FlatBufferBuilder &_fbb,
484
          flatbuffers::Offset<flatbuffers::String> org = 0, int32_t code = 0,
485
          flatbuffers::Offset<flatbuffers::String> name = 0,
486
          flatbuffers::Offset<flatbuffers::String> description = 0,
487
          flatbuffers::Offset<flatbuffers::String> wkt = 0,
488
          flatbuffers::Offset<flatbuffers::String> code_string = 0)
489
10
{
490
10
    CrsBuilder builder_(_fbb);
491
10
    builder_.add_code_string(code_string);
492
10
    builder_.add_wkt(wkt);
493
10
    builder_.add_description(description);
494
10
    builder_.add_name(name);
495
10
    builder_.add_code(code);
496
10
    builder_.add_org(org);
497
10
    return builder_.Finish();
498
10
}
499
500
inline flatbuffers::Offset<Crs>
501
CreateCrsDirect(flatbuffers::FlatBufferBuilder &_fbb, const char *org = nullptr,
502
                int32_t code = 0, const char *name = nullptr,
503
                const char *description = nullptr, const char *wkt = nullptr,
504
                const char *code_string = nullptr)
505
10
{
506
10
    auto org__ = org ? _fbb.CreateString(org) : 0;
507
10
    auto name__ = name ? _fbb.CreateString(name) : 0;
508
10
    auto description__ = description ? _fbb.CreateString(description) : 0;
509
10
    auto wkt__ = wkt ? _fbb.CreateString(wkt) : 0;
510
10
    auto code_string__ = code_string ? _fbb.CreateString(code_string) : 0;
511
10
    return FlatGeobuf::CreateCrs(_fbb, org__, code, name__, description__,
512
10
                                 wkt__, code_string__);
513
10
}
514
515
struct Header FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table
516
{
517
    typedef HeaderBuilder Builder;
518
519
    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE
520
    {
521
        VT_NAME = 4,
522
        VT_ENVELOPE = 6,
523
        VT_GEOMETRY_TYPE = 8,
524
        VT_HAS_Z = 10,
525
        VT_HAS_M = 12,
526
        VT_HAS_T = 14,
527
        VT_HAS_TM = 16,
528
        VT_COLUMNS = 18,
529
        VT_FEATURES_COUNT = 20,
530
        VT_INDEX_NODE_SIZE = 22,
531
        VT_CRS = 24,
532
        VT_TITLE = 26,
533
        VT_DESCRIPTION = 28,
534
        VT_METADATA = 30
535
    };
536
537
    const flatbuffers::String *name() const
538
42.1k
    {
539
42.1k
        return GetPointer<const flatbuffers::String *>(VT_NAME);
540
42.1k
    }
541
542
    const flatbuffers::Vector<double> *envelope() const
543
31.4k
    {
544
31.4k
        return GetPointer<const flatbuffers::Vector<double> *>(VT_ENVELOPE);
545
31.4k
    }
546
547
    FlatGeobuf::GeometryType geometry_type() const
548
15.4k
    {
549
15.4k
        return static_cast<FlatGeobuf::GeometryType>(
550
15.4k
            GetField<uint8_t>(VT_GEOMETRY_TYPE, 0));
551
15.4k
    }
552
553
    bool has_z() const
554
15.4k
    {
555
15.4k
        return GetField<uint8_t>(VT_HAS_Z, 0) != 0;
556
15.4k
    }
557
558
    bool has_m() const
559
15.4k
    {
560
15.4k
        return GetField<uint8_t>(VT_HAS_M, 0) != 0;
561
15.4k
    }
562
563
    bool has_t() const
564
15.4k
    {
565
15.4k
        return GetField<uint8_t>(VT_HAS_T, 0) != 0;
566
15.4k
    }
567
568
    bool has_tm() const
569
0
    {
570
0
        return GetField<uint8_t>(VT_HAS_TM, 0) != 0;
571
0
    }
572
573
    const flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>> *
574
    columns() const
575
49.0k
    {
576
49.0k
        return GetPointer<const flatbuffers::Vector<
577
49.0k
            flatbuffers::Offset<FlatGeobuf::Column>> *>(VT_COLUMNS);
578
49.0k
    }
579
580
    uint64_t features_count() const
581
31.0k
    {
582
31.0k
        return GetField<uint64_t>(VT_FEATURES_COUNT, 0);
583
31.0k
    }
584
585
    uint16_t index_node_size() const
586
30.9k
    {
587
30.9k
        return GetField<uint16_t>(VT_INDEX_NODE_SIZE, 16);
588
30.9k
    }
589
590
    const FlatGeobuf::Crs *crs() const
591
31.1k
    {
592
31.1k
        return GetPointer<const FlatGeobuf::Crs *>(VT_CRS);
593
31.1k
    }
594
595
    const flatbuffers::String *title() const
596
31.0k
    {
597
31.0k
        return GetPointer<const flatbuffers::String *>(VT_TITLE);
598
31.0k
    }
599
600
    const flatbuffers::String *description() const
601
31.0k
    {
602
31.0k
        return GetPointer<const flatbuffers::String *>(VT_DESCRIPTION);
603
31.0k
    }
604
605
    const flatbuffers::String *metadata() const
606
31.0k
    {
607
31.0k
        return GetPointer<const flatbuffers::String *>(VT_METADATA);
608
31.0k
    }
609
610
    bool Verify(flatbuffers::Verifier &verifier) const
611
16.1k
    {
612
16.1k
        return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) &&
613
16.0k
               verifier.VerifyString(name()) &&
614
16.0k
               VerifyOffset(verifier, VT_ENVELOPE) &&
615
15.9k
               verifier.VerifyVector(envelope()) &&
616
15.9k
               VerifyField<uint8_t>(verifier, VT_GEOMETRY_TYPE, 1) &&
617
15.9k
               VerifyField<uint8_t>(verifier, VT_HAS_Z, 1) &&
618
15.9k
               VerifyField<uint8_t>(verifier, VT_HAS_M, 1) &&
619
15.9k
               VerifyField<uint8_t>(verifier, VT_HAS_T, 1) &&
620
15.9k
               VerifyField<uint8_t>(verifier, VT_HAS_TM, 1) &&
621
15.9k
               VerifyOffset(verifier, VT_COLUMNS) &&
622
15.8k
               verifier.VerifyVector(columns()) &&
623
15.8k
               verifier.VerifyVectorOfTables(columns()) &&
624
15.7k
               VerifyField<uint64_t>(verifier, VT_FEATURES_COUNT, 8) &&
625
15.7k
               VerifyField<uint16_t>(verifier, VT_INDEX_NODE_SIZE, 2) &&
626
15.7k
               VerifyOffset(verifier, VT_CRS) && verifier.VerifyTable(crs()) &&
627
15.5k
               VerifyOffset(verifier, VT_TITLE) &&
628
15.5k
               verifier.VerifyString(title()) &&
629
15.5k
               VerifyOffset(verifier, VT_DESCRIPTION) &&
630
15.5k
               verifier.VerifyString(description()) &&
631
15.5k
               VerifyOffset(verifier, VT_METADATA) &&
632
15.5k
               verifier.VerifyString(metadata()) && verifier.EndTable();
633
16.1k
    }
634
};
635
636
struct HeaderBuilder
637
{
638
    typedef Header Table;
639
    flatbuffers::FlatBufferBuilder &fbb_;
640
    flatbuffers::uoffset_t start_;
641
642
    void add_name(flatbuffers::Offset<flatbuffers::String> name)
643
175
    {
644
175
        fbb_.AddOffset(Header::VT_NAME, name);
645
175
    }
646
647
    void add_envelope(flatbuffers::Offset<flatbuffers::Vector<double>> envelope)
648
175
    {
649
175
        fbb_.AddOffset(Header::VT_ENVELOPE, envelope);
650
175
    }
651
652
    void add_geometry_type(FlatGeobuf::GeometryType geometry_type)
653
175
    {
654
175
        fbb_.AddElement<uint8_t>(Header::VT_GEOMETRY_TYPE,
655
175
                                 static_cast<uint8_t>(geometry_type), 0);
656
175
    }
657
658
    void add_has_z(bool has_z)
659
175
    {
660
175
        fbb_.AddElement<uint8_t>(Header::VT_HAS_Z, static_cast<uint8_t>(has_z),
661
175
                                 0);
662
175
    }
663
664
    void add_has_m(bool has_m)
665
175
    {
666
175
        fbb_.AddElement<uint8_t>(Header::VT_HAS_M, static_cast<uint8_t>(has_m),
667
175
                                 0);
668
175
    }
669
670
    void add_has_t(bool has_t)
671
175
    {
672
175
        fbb_.AddElement<uint8_t>(Header::VT_HAS_T, static_cast<uint8_t>(has_t),
673
175
                                 0);
674
175
    }
675
676
    void add_has_tm(bool has_tm)
677
175
    {
678
175
        fbb_.AddElement<uint8_t>(Header::VT_HAS_TM,
679
175
                                 static_cast<uint8_t>(has_tm), 0);
680
175
    }
681
682
    void
683
    add_columns(flatbuffers::Offset<
684
                flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>
685
                    columns)
686
175
    {
687
175
        fbb_.AddOffset(Header::VT_COLUMNS, columns);
688
175
    }
689
690
    void add_features_count(uint64_t features_count)
691
175
    {
692
175
        fbb_.AddElement<uint64_t>(Header::VT_FEATURES_COUNT, features_count, 0);
693
175
    }
694
695
    void add_index_node_size(uint16_t index_node_size)
696
175
    {
697
175
        fbb_.AddElement<uint16_t>(Header::VT_INDEX_NODE_SIZE, index_node_size,
698
175
                                  16);
699
175
    }
700
701
    void add_crs(flatbuffers::Offset<FlatGeobuf::Crs> crs)
702
175
    {
703
175
        fbb_.AddOffset(Header::VT_CRS, crs);
704
175
    }
705
706
    void add_title(flatbuffers::Offset<flatbuffers::String> title)
707
175
    {
708
175
        fbb_.AddOffset(Header::VT_TITLE, title);
709
175
    }
710
711
    void add_description(flatbuffers::Offset<flatbuffers::String> description)
712
175
    {
713
175
        fbb_.AddOffset(Header::VT_DESCRIPTION, description);
714
175
    }
715
716
    void add_metadata(flatbuffers::Offset<flatbuffers::String> metadata)
717
175
    {
718
175
        fbb_.AddOffset(Header::VT_METADATA, metadata);
719
175
    }
720
721
175
    explicit HeaderBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb)
722
175
    {
723
175
        start_ = fbb_.StartTable();
724
175
    }
725
726
    flatbuffers::Offset<Header> Finish()
727
175
    {
728
175
        const auto end = fbb_.EndTable(start_);
729
175
        auto o = flatbuffers::Offset<Header>(end);
730
175
        return o;
731
175
    }
732
};
733
734
inline flatbuffers::Offset<Header> CreateHeader(
735
    flatbuffers::FlatBufferBuilder &_fbb,
736
    flatbuffers::Offset<flatbuffers::String> name = 0,
737
    flatbuffers::Offset<flatbuffers::Vector<double>> envelope = 0,
738
    FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,
739
    bool has_z = false, bool has_m = false, bool has_t = false,
740
    bool has_tm = false,
741
    flatbuffers::Offset<
742
        flatbuffers::Vector<flatbuffers::Offset<FlatGeobuf::Column>>>
743
        columns = 0,
744
    uint64_t features_count = 0, uint16_t index_node_size = 16,
745
    flatbuffers::Offset<FlatGeobuf::Crs> crs = 0,
746
    flatbuffers::Offset<flatbuffers::String> title = 0,
747
    flatbuffers::Offset<flatbuffers::String> description = 0,
748
    flatbuffers::Offset<flatbuffers::String> metadata = 0)
749
175
{
750
175
    HeaderBuilder builder_(_fbb);
751
175
    builder_.add_features_count(features_count);
752
175
    builder_.add_metadata(metadata);
753
175
    builder_.add_description(description);
754
175
    builder_.add_title(title);
755
175
    builder_.add_crs(crs);
756
175
    builder_.add_columns(columns);
757
175
    builder_.add_envelope(envelope);
758
175
    builder_.add_name(name);
759
175
    builder_.add_index_node_size(index_node_size);
760
175
    builder_.add_has_tm(has_tm);
761
175
    builder_.add_has_t(has_t);
762
175
    builder_.add_has_m(has_m);
763
175
    builder_.add_has_z(has_z);
764
175
    builder_.add_geometry_type(geometry_type);
765
175
    return builder_.Finish();
766
175
}
767
768
inline flatbuffers::Offset<Header> CreateHeaderDirect(
769
    flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr,
770
    const std::vector<double> *envelope = nullptr,
771
    FlatGeobuf::GeometryType geometry_type = FlatGeobuf::GeometryType::Unknown,
772
    bool has_z = false, bool has_m = false, bool has_t = false,
773
    bool has_tm = false,
774
    const std::vector<flatbuffers::Offset<FlatGeobuf::Column>> *columns =
775
        nullptr,
776
    uint64_t features_count = 0, uint16_t index_node_size = 16,
777
    flatbuffers::Offset<FlatGeobuf::Crs> crs = 0, const char *title = nullptr,
778
    const char *description = nullptr, const char *metadata = nullptr)
779
175
{
780
175
    auto name__ = name ? _fbb.CreateString(name) : 0;
781
175
    auto envelope__ = envelope ? _fbb.CreateVector<double>(*envelope) : 0;
782
175
    auto columns__ =
783
175
        columns ? _fbb.CreateVector<flatbuffers::Offset<FlatGeobuf::Column>>(
784
175
                      *columns)
785
175
                : 0;
786
175
    auto title__ = title ? _fbb.CreateString(title) : 0;
787
175
    auto description__ = description ? _fbb.CreateString(description) : 0;
788
175
    auto metadata__ = metadata ? _fbb.CreateString(metadata) : 0;
789
175
    return FlatGeobuf::CreateHeader(_fbb, name__, envelope__, geometry_type,
790
175
                                    has_z, has_m, has_t, has_tm, columns__,
791
175
                                    features_count, index_node_size, crs,
792
175
                                    title__, description__, metadata__);
793
175
}
794
795
inline const FlatGeobuf::Header *GetHeader(const void *buf)
796
15.5k
{
797
15.5k
    return flatbuffers::GetRoot<FlatGeobuf::Header>(buf);
798
15.5k
}
799
800
inline const FlatGeobuf::Header *GetSizePrefixedHeader(const void *buf)
801
0
{
802
0
    return flatbuffers::GetSizePrefixedRoot<FlatGeobuf::Header>(buf);
803
0
}
804
805
inline bool VerifyHeaderBuffer(flatbuffers::Verifier &verifier)
806
16.2k
{
807
16.2k
    return verifier.VerifyBuffer<FlatGeobuf::Header>(nullptr);
808
16.2k
}
809
810
inline bool VerifySizePrefixedHeaderBuffer(flatbuffers::Verifier &verifier)
811
0
{
812
0
    return verifier.VerifySizePrefixedBuffer<FlatGeobuf::Header>(nullptr);
813
0
}
814
815
inline void FinishHeaderBuffer(flatbuffers::FlatBufferBuilder &fbb,
816
                               flatbuffers::Offset<FlatGeobuf::Header> root)
817
0
{
818
0
    fbb.Finish(root);
819
0
}
820
821
inline void
822
FinishSizePrefixedHeaderBuffer(flatbuffers::FlatBufferBuilder &fbb,
823
                               flatbuffers::Offset<FlatGeobuf::Header> root)
824
0
{
825
0
    fbb.FinishSizePrefixed(root);
826
0
}
827
828
}  // namespace FlatGeobuf
829
830
#endif  // FLATBUFFERS_GENERATED_HEADER_FLATGEOBUF_H_