LCOV - code coverage report
Current view: top level - frmts/icechunk/generated - snapshot_generated.h (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 155 158 98.1 %
Date: 2026-06-19 21:24:00 Functions: 45 45 100.0 %

          Line data    Source code
       1             : // automatically generated by the FlatBuffers compiler, do not modify
       2             : 
       3             : 
       4             : #ifndef FLATBUFFERS_GENERATED_SNAPSHOT_GENERATED_H_
       5             : #define FLATBUFFERS_GENERATED_SNAPSHOT_GENERATED_H_
       6             : 
       7             : #include "flatbuffers/flatbuffers.h"
       8             : 
       9             : // Ensure the included flatbuffers.h is the same version as when this file was
      10             : // generated, otherwise it may not be compatible.
      11             : static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
      12             :               FLATBUFFERS_VERSION_MINOR == 0 &&
      13             :               FLATBUFFERS_VERSION_REVISION == 8,
      14             :              "Non-compatible flatbuffers version included");
      15             : 
      16             : #include "common_generated.h"
      17             : 
      18             : namespace generated {
      19             : 
      20             : struct ManifestFileInfo;
      21             : 
      22             : struct ManifestFileInfoV2;
      23             : struct ManifestFileInfoV2Builder;
      24             : 
      25             : struct ChunkIndexRange;
      26             : 
      27             : struct ManifestRef;
      28             : struct ManifestRefBuilder;
      29             : 
      30             : struct DimensionShape;
      31             : 
      32             : struct DimensionShapeV2;
      33             : struct DimensionShapeV2Builder;
      34             : 
      35             : struct DimensionName;
      36             : struct DimensionNameBuilder;
      37             : 
      38             : struct GroupNodeData;
      39             : struct GroupNodeDataBuilder;
      40             : 
      41             : struct ArrayNodeData;
      42             : struct ArrayNodeDataBuilder;
      43             : 
      44             : struct NodeSnapshot;
      45             : struct NodeSnapshotBuilder;
      46             : 
      47             : struct Snapshot;
      48             : struct SnapshotBuilder;
      49             : 
      50             : enum class NodeData : uint8_t {
      51             :   NONE = 0,
      52             :   Array = 1,
      53             :   Group = 2,
      54             :   MIN = NONE,
      55             :   MAX = Group
      56             : };
      57             : 
      58             : inline const NodeData (&EnumValuesNodeData())[3] {
      59             :   static const NodeData values[] = {
      60             :     NodeData::NONE,
      61             :     NodeData::Array,
      62             :     NodeData::Group
      63             :   };
      64             :   return values;
      65             : }
      66             : 
      67             : inline const char * const *EnumNamesNodeData() {
      68             :   static const char * const names[4] = {
      69             :     "NONE",
      70             :     "Array",
      71             :     "Group",
      72             :     nullptr
      73             :   };
      74             :   return names;
      75             : }
      76             : 
      77             : inline const char *EnumNameNodeData(NodeData e) {
      78             :   if (flatbuffers::IsOutRange(e, NodeData::NONE, NodeData::Group)) return "";
      79             :   const size_t index = static_cast<size_t>(e);
      80             :   return EnumNamesNodeData()[index];
      81             : }
      82             : 
      83             : template<typename T> struct NodeDataTraits {
      84             :   static const NodeData enum_value = NodeData::NONE;
      85             : };
      86             : 
      87             : template<> struct NodeDataTraits<generated::ArrayNodeData> {
      88             :   static const NodeData enum_value = NodeData::Array;
      89             : };
      90             : 
      91             : template<> struct NodeDataTraits<generated::GroupNodeData> {
      92             :   static const NodeData enum_value = NodeData::Group;
      93             : };
      94             : 
      95             : bool VerifyNodeData(flatbuffers::Verifier &verifier, const void *obj, NodeData type);
      96             : bool VerifyNodeDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<NodeData> *types);
      97             : 
      98             : FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) ManifestFileInfo FLATBUFFERS_FINAL_CLASS {
      99             :  private:
     100             :   generated::ObjectId12 id_;
     101             :   int32_t padding0__;
     102             :   uint64_t size_bytes_;
     103             :   uint32_t num_chunk_refs_;
     104             :   int32_t padding1__;
     105             : 
     106             :  public:
     107             :   struct Traits;
     108             :   ManifestFileInfo()
     109             :       : id_(),
     110             :         padding0__(0),
     111             :         size_bytes_(0),
     112             :         num_chunk_refs_(0),
     113             :         padding1__(0) {
     114             :     (void)padding0__;
     115             :     (void)padding1__;
     116             :   }
     117             :   ManifestFileInfo(const generated::ObjectId12 &_id, uint64_t _size_bytes, uint32_t _num_chunk_refs)
     118             :       : id_(_id),
     119             :         padding0__(0),
     120             :         size_bytes_(flatbuffers::EndianScalar(_size_bytes)),
     121             :         num_chunk_refs_(flatbuffers::EndianScalar(_num_chunk_refs)),
     122             :         padding1__(0) {
     123             :     (void)padding0__;
     124             :     (void)padding1__;
     125             :   }
     126          21 :   const generated::ObjectId12 &id() const {
     127          21 :     return id_;
     128             :   }
     129          21 :   uint64_t size_bytes() const {
     130          21 :     return flatbuffers::EndianScalar(size_bytes_);
     131             :   }
     132          21 :   uint32_t num_chunk_refs() const {
     133          21 :     return flatbuffers::EndianScalar(num_chunk_refs_);
     134             :   }
     135             : };
     136             : FLATBUFFERS_STRUCT_END(ManifestFileInfo, 32);
     137             : 
     138             : struct ManifestFileInfo::Traits {
     139             :   using type = ManifestFileInfo;
     140             : };
     141             : 
     142             : FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) ChunkIndexRange FLATBUFFERS_FINAL_CLASS {
     143             :  private:
     144             :   uint32_t from_;
     145             :   uint32_t to_;
     146             : 
     147             :  public:
     148             :   struct Traits;
     149             :   ChunkIndexRange()
     150             :       : from_(0),
     151             :         to_(0) {
     152             :   }
     153             :   ChunkIndexRange(uint32_t _from, uint32_t _to)
     154             :       : from_(flatbuffers::EndianScalar(_from)),
     155             :         to_(flatbuffers::EndianScalar(_to)) {
     156             :   }
     157        9267 :   uint32_t from() const {
     158        9267 :     return flatbuffers::EndianScalar(from_);
     159             :   }
     160        9267 :   uint32_t to() const {
     161        9267 :     return flatbuffers::EndianScalar(to_);
     162             :   }
     163             : };
     164             : FLATBUFFERS_STRUCT_END(ChunkIndexRange, 8);
     165             : 
     166             : struct ChunkIndexRange::Traits {
     167             :   using type = ChunkIndexRange;
     168             : };
     169             : 
     170             : FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) DimensionShape FLATBUFFERS_FINAL_CLASS {
     171             :  private:
     172             :   uint64_t array_length_;
     173             :   uint64_t chunk_length_;
     174             : 
     175             :  public:
     176             :   struct Traits;
     177             :   DimensionShape()
     178             :       : array_length_(0),
     179             :         chunk_length_(0) {
     180             :   }
     181             :   DimensionShape(uint64_t _array_length, uint64_t _chunk_length)
     182             :       : array_length_(flatbuffers::EndianScalar(_array_length)),
     183             :         chunk_length_(flatbuffers::EndianScalar(_chunk_length)) {
     184             :   }
     185          19 :   uint64_t array_length() const {
     186          19 :     return flatbuffers::EndianScalar(array_length_);
     187             :   }
     188          19 :   uint64_t chunk_length() const {
     189          19 :     return flatbuffers::EndianScalar(chunk_length_);
     190             :   }
     191             : };
     192             : FLATBUFFERS_STRUCT_END(DimensionShape, 16);
     193             : 
     194             : struct DimensionShape::Traits {
     195             :   using type = DimensionShape;
     196             : };
     197             : 
     198             : struct ManifestFileInfoV2 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     199             :   typedef ManifestFileInfoV2Builder Builder;
     200             :   struct Traits;
     201             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     202             :     VT_ID = 4,
     203             :     VT_SIZE_BYTES = 6,
     204             :     VT_NUM_CHUNK_REFS = 8,
     205             :     VT_EXTRA = 10
     206             :   };
     207        2214 :   const generated::ObjectId12 *id() const {
     208        2214 :     return GetStruct<const generated::ObjectId12 *>(VT_ID);
     209             :   }
     210        2213 :   uint64_t size_bytes() const {
     211        2213 :     return GetField<uint64_t>(VT_SIZE_BYTES, 0);
     212             :   }
     213        2213 :   uint32_t num_chunk_refs() const {
     214        2213 :     return GetField<uint32_t>(VT_NUM_CHUNK_REFS, 0);
     215             :   }
     216        2220 :   const flatbuffers::Vector<uint8_t> *extra() const {
     217        2220 :     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_EXTRA);
     218             :   }
     219        2220 :   bool Verify(flatbuffers::Verifier &verifier) const {
     220        2220 :     return VerifyTableStart(verifier) &&
     221        2220 :            VerifyField<generated::ObjectId12>(verifier, VT_ID, 1) &&
     222        2220 :            VerifyField<uint64_t>(verifier, VT_SIZE_BYTES, 8) &&
     223        2220 :            VerifyField<uint32_t>(verifier, VT_NUM_CHUNK_REFS, 4) &&
     224        2220 :            VerifyOffset(verifier, VT_EXTRA) &&
     225        6660 :            verifier.VerifyVector(extra()) &&
     226        4440 :            verifier.EndTable();
     227             :   }
     228             : };
     229             : 
     230             : struct ManifestFileInfoV2Builder {
     231             :   typedef ManifestFileInfoV2 Table;
     232             :   flatbuffers::FlatBufferBuilder &fbb_;
     233             :   flatbuffers::uoffset_t start_;
     234             :   void add_id(const generated::ObjectId12 *id) {
     235             :     fbb_.AddStruct(ManifestFileInfoV2::VT_ID, id);
     236             :   }
     237             :   void add_size_bytes(uint64_t size_bytes) {
     238             :     fbb_.AddElement<uint64_t>(ManifestFileInfoV2::VT_SIZE_BYTES, size_bytes, 0);
     239             :   }
     240             :   void add_num_chunk_refs(uint32_t num_chunk_refs) {
     241             :     fbb_.AddElement<uint32_t>(ManifestFileInfoV2::VT_NUM_CHUNK_REFS, num_chunk_refs, 0);
     242             :   }
     243             :   void add_extra(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> extra) {
     244             :     fbb_.AddOffset(ManifestFileInfoV2::VT_EXTRA, extra);
     245             :   }
     246             :   explicit ManifestFileInfoV2Builder(flatbuffers::FlatBufferBuilder &_fbb)
     247             :         : fbb_(_fbb) {
     248             :     start_ = fbb_.StartTable();
     249             :   }
     250             :   flatbuffers::Offset<ManifestFileInfoV2> Finish() {
     251             :     const auto end = fbb_.EndTable(start_);
     252             :     auto o = flatbuffers::Offset<ManifestFileInfoV2>(end);
     253             :     return o;
     254             :   }
     255             : };
     256             : 
     257             : inline flatbuffers::Offset<ManifestFileInfoV2> CreateManifestFileInfoV2(
     258             :     flatbuffers::FlatBufferBuilder &_fbb,
     259             :     const generated::ObjectId12 *id = nullptr,
     260             :     uint64_t size_bytes = 0,
     261             :     uint32_t num_chunk_refs = 0,
     262             :     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> extra = 0) {
     263             :   ManifestFileInfoV2Builder builder_(_fbb);
     264             :   builder_.add_size_bytes(size_bytes);
     265             :   builder_.add_extra(extra);
     266             :   builder_.add_num_chunk_refs(num_chunk_refs);
     267             :   builder_.add_id(id);
     268             :   return builder_.Finish();
     269             : }
     270             : 
     271             : struct ManifestFileInfoV2::Traits {
     272             :   using type = ManifestFileInfoV2;
     273             :   static auto constexpr Create = CreateManifestFileInfoV2;
     274             : };
     275             : 
     276             : inline flatbuffers::Offset<ManifestFileInfoV2> CreateManifestFileInfoV2Direct(
     277             :     flatbuffers::FlatBufferBuilder &_fbb,
     278             :     const generated::ObjectId12 *id = nullptr,
     279             :     uint64_t size_bytes = 0,
     280             :     uint32_t num_chunk_refs = 0,
     281             :     const std::vector<uint8_t> *extra = nullptr) {
     282             :   auto extra__ = extra ? _fbb.CreateVector<uint8_t>(*extra) : 0;
     283             :   return generated::CreateManifestFileInfoV2(
     284             :       _fbb,
     285             :       id,
     286             :       size_bytes,
     287             :       num_chunk_refs,
     288             :       extra__);
     289             : }
     290             : 
     291             : struct ManifestRef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     292             :   typedef ManifestRefBuilder Builder;
     293             :   struct Traits;
     294             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     295             :     VT_OBJECT_ID = 4,
     296             :     VT_EXTENTS = 6
     297             :   };
     298        2236 :   const generated::ObjectId12 *object_id() const {
     299        2236 :     return GetStruct<const generated::ObjectId12 *>(VT_OBJECT_ID);
     300             :   }
     301        4472 :   const flatbuffers::Vector<const generated::ChunkIndexRange *> *extents() const {
     302        4472 :     return GetPointer<const flatbuffers::Vector<const generated::ChunkIndexRange *> *>(VT_EXTENTS);
     303             :   }
     304        2236 :   bool Verify(flatbuffers::Verifier &verifier) const {
     305        2236 :     return VerifyTableStart(verifier) &&
     306        2236 :            VerifyFieldRequired<generated::ObjectId12>(verifier, VT_OBJECT_ID, 1) &&
     307        2236 :            VerifyOffsetRequired(verifier, VT_EXTENTS) &&
     308        6708 :            verifier.VerifyVector(extents()) &&
     309        4472 :            verifier.EndTable();
     310             :   }
     311             : };
     312             : 
     313             : struct ManifestRefBuilder {
     314             :   typedef ManifestRef Table;
     315             :   flatbuffers::FlatBufferBuilder &fbb_;
     316             :   flatbuffers::uoffset_t start_;
     317             :   void add_object_id(const generated::ObjectId12 *object_id) {
     318             :     fbb_.AddStruct(ManifestRef::VT_OBJECT_ID, object_id);
     319             :   }
     320             :   void add_extents(flatbuffers::Offset<flatbuffers::Vector<const generated::ChunkIndexRange *>> extents) {
     321             :     fbb_.AddOffset(ManifestRef::VT_EXTENTS, extents);
     322             :   }
     323             :   explicit ManifestRefBuilder(flatbuffers::FlatBufferBuilder &_fbb)
     324             :         : fbb_(_fbb) {
     325             :     start_ = fbb_.StartTable();
     326             :   }
     327             :   flatbuffers::Offset<ManifestRef> Finish() {
     328             :     const auto end = fbb_.EndTable(start_);
     329             :     auto o = flatbuffers::Offset<ManifestRef>(end);
     330             :     fbb_.Required(o, ManifestRef::VT_OBJECT_ID);
     331             :     fbb_.Required(o, ManifestRef::VT_EXTENTS);
     332             :     return o;
     333             :   }
     334             : };
     335             : 
     336             : inline flatbuffers::Offset<ManifestRef> CreateManifestRef(
     337             :     flatbuffers::FlatBufferBuilder &_fbb,
     338             :     const generated::ObjectId12 *object_id = nullptr,
     339             :     flatbuffers::Offset<flatbuffers::Vector<const generated::ChunkIndexRange *>> extents = 0) {
     340             :   ManifestRefBuilder builder_(_fbb);
     341             :   builder_.add_extents(extents);
     342             :   builder_.add_object_id(object_id);
     343             :   return builder_.Finish();
     344             : }
     345             : 
     346             : struct ManifestRef::Traits {
     347             :   using type = ManifestRef;
     348             :   static auto constexpr Create = CreateManifestRef;
     349             : };
     350             : 
     351             : inline flatbuffers::Offset<ManifestRef> CreateManifestRefDirect(
     352             :     flatbuffers::FlatBufferBuilder &_fbb,
     353             :     const generated::ObjectId12 *object_id = nullptr,
     354             :     const std::vector<generated::ChunkIndexRange> *extents = nullptr) {
     355             :   auto extents__ = extents ? _fbb.CreateVectorOfStructs<generated::ChunkIndexRange>(*extents) : 0;
     356             :   return generated::CreateManifestRef(
     357             :       _fbb,
     358             :       object_id,
     359             :       extents__);
     360             : }
     361             : 
     362             : struct DimensionShapeV2 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     363             :   typedef DimensionShapeV2Builder Builder;
     364             :   struct Traits;
     365             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     366             :     VT_ARRAY_LENGTH = 4,
     367             :     VT_NUM_CHUNKS = 6
     368             :   };
     369             :   uint64_t array_length() const {
     370             :     return GetField<uint64_t>(VT_ARRAY_LENGTH, 0);
     371             :   }
     372        2286 :   uint32_t num_chunks() const {
     373        2286 :     return GetField<uint32_t>(VT_NUM_CHUNKS, 0);
     374             :   }
     375        2286 :   bool Verify(flatbuffers::Verifier &verifier) const {
     376        2286 :     return VerifyTableStart(verifier) &&
     377        2286 :            VerifyField<uint64_t>(verifier, VT_ARRAY_LENGTH, 8) &&
     378        6858 :            VerifyField<uint32_t>(verifier, VT_NUM_CHUNKS, 4) &&
     379        4572 :            verifier.EndTable();
     380             :   }
     381             : };
     382             : 
     383             : struct DimensionShapeV2Builder {
     384             :   typedef DimensionShapeV2 Table;
     385             :   flatbuffers::FlatBufferBuilder &fbb_;
     386             :   flatbuffers::uoffset_t start_;
     387             :   void add_array_length(uint64_t array_length) {
     388             :     fbb_.AddElement<uint64_t>(DimensionShapeV2::VT_ARRAY_LENGTH, array_length, 0);
     389             :   }
     390             :   void add_num_chunks(uint32_t num_chunks) {
     391             :     fbb_.AddElement<uint32_t>(DimensionShapeV2::VT_NUM_CHUNKS, num_chunks, 0);
     392             :   }
     393             :   explicit DimensionShapeV2Builder(flatbuffers::FlatBufferBuilder &_fbb)
     394             :         : fbb_(_fbb) {
     395             :     start_ = fbb_.StartTable();
     396             :   }
     397             :   flatbuffers::Offset<DimensionShapeV2> Finish() {
     398             :     const auto end = fbb_.EndTable(start_);
     399             :     auto o = flatbuffers::Offset<DimensionShapeV2>(end);
     400             :     return o;
     401             :   }
     402             : };
     403             : 
     404             : inline flatbuffers::Offset<DimensionShapeV2> CreateDimensionShapeV2(
     405             :     flatbuffers::FlatBufferBuilder &_fbb,
     406             :     uint64_t array_length = 0,
     407             :     uint32_t num_chunks = 0) {
     408             :   DimensionShapeV2Builder builder_(_fbb);
     409             :   builder_.add_array_length(array_length);
     410             :   builder_.add_num_chunks(num_chunks);
     411             :   return builder_.Finish();
     412             : }
     413             : 
     414             : struct DimensionShapeV2::Traits {
     415             :   using type = DimensionShapeV2;
     416             :   static auto constexpr Create = CreateDimensionShapeV2;
     417             : };
     418             : 
     419             : struct DimensionName FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     420             :   typedef DimensionNameBuilder Builder;
     421             :   struct Traits;
     422             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     423             :     VT_NAME = 4
     424             :   };
     425         144 :   const flatbuffers::String *name() const {
     426         144 :     return GetPointer<const flatbuffers::String *>(VT_NAME);
     427             :   }
     428         144 :   bool Verify(flatbuffers::Verifier &verifier) const {
     429         144 :     return VerifyTableStart(verifier) &&
     430         144 :            VerifyOffset(verifier, VT_NAME) &&
     431         432 :            verifier.VerifyString(name()) &&
     432         288 :            verifier.EndTable();
     433             :   }
     434             : };
     435             : 
     436             : struct DimensionNameBuilder {
     437             :   typedef DimensionName Table;
     438             :   flatbuffers::FlatBufferBuilder &fbb_;
     439             :   flatbuffers::uoffset_t start_;
     440             :   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
     441             :     fbb_.AddOffset(DimensionName::VT_NAME, name);
     442             :   }
     443             :   explicit DimensionNameBuilder(flatbuffers::FlatBufferBuilder &_fbb)
     444             :         : fbb_(_fbb) {
     445             :     start_ = fbb_.StartTable();
     446             :   }
     447             :   flatbuffers::Offset<DimensionName> Finish() {
     448             :     const auto end = fbb_.EndTable(start_);
     449             :     auto o = flatbuffers::Offset<DimensionName>(end);
     450             :     return o;
     451             :   }
     452             : };
     453             : 
     454             : inline flatbuffers::Offset<DimensionName> CreateDimensionName(
     455             :     flatbuffers::FlatBufferBuilder &_fbb,
     456             :     flatbuffers::Offset<flatbuffers::String> name = 0) {
     457             :   DimensionNameBuilder builder_(_fbb);
     458             :   builder_.add_name(name);
     459             :   return builder_.Finish();
     460             : }
     461             : 
     462             : struct DimensionName::Traits {
     463             :   using type = DimensionName;
     464             :   static auto constexpr Create = CreateDimensionName;
     465             : };
     466             : 
     467             : inline flatbuffers::Offset<DimensionName> CreateDimensionNameDirect(
     468             :     flatbuffers::FlatBufferBuilder &_fbb,
     469             :     const char *name = nullptr) {
     470             :   auto name__ = name ? _fbb.CreateString(name) : 0;
     471             :   return generated::CreateDimensionName(
     472             :       _fbb,
     473             :       name__);
     474             : }
     475             : 
     476             : struct GroupNodeData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     477             :   typedef GroupNodeDataBuilder Builder;
     478             :   struct Traits;
     479        2168 :   bool Verify(flatbuffers::Verifier &verifier) const {
     480        4336 :     return VerifyTableStart(verifier) &&
     481        4336 :            verifier.EndTable();
     482             :   }
     483             : };
     484             : 
     485             : struct GroupNodeDataBuilder {
     486             :   typedef GroupNodeData Table;
     487             :   flatbuffers::FlatBufferBuilder &fbb_;
     488             :   flatbuffers::uoffset_t start_;
     489             :   explicit GroupNodeDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
     490             :         : fbb_(_fbb) {
     491             :     start_ = fbb_.StartTable();
     492             :   }
     493             :   flatbuffers::Offset<GroupNodeData> Finish() {
     494             :     const auto end = fbb_.EndTable(start_);
     495             :     auto o = flatbuffers::Offset<GroupNodeData>(end);
     496             :     return o;
     497             :   }
     498             : };
     499             : 
     500             : inline flatbuffers::Offset<GroupNodeData> CreateGroupNodeData(
     501             :     flatbuffers::FlatBufferBuilder &_fbb) {
     502             :   GroupNodeDataBuilder builder_(_fbb);
     503             :   return builder_.Finish();
     504             : }
     505             : 
     506             : struct GroupNodeData::Traits {
     507             :   using type = GroupNodeData;
     508             :   static auto constexpr Create = CreateGroupNodeData;
     509             : };
     510             : 
     511             : struct ArrayNodeData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     512             :   typedef ArrayNodeDataBuilder Builder;
     513             :   struct Traits;
     514             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     515             :     VT_SHAPE = 4,
     516             :     VT_DIMENSION_NAMES = 6,
     517             :     VT_MANIFESTS = 8,
     518             :     VT_SHAPE_V2 = 10
     519             :   };
     520        2265 :   const flatbuffers::Vector<const generated::DimensionShape *> *shape() const {
     521        2265 :     return GetPointer<const flatbuffers::Vector<const generated::DimensionShape *> *>(VT_SHAPE);
     522             :   }
     523        4480 :   const flatbuffers::Vector<flatbuffers::Offset<generated::DimensionName>> *dimension_names() const {
     524        4480 :     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<generated::DimensionName>> *>(VT_DIMENSION_NAMES);
     525             :   }
     526        6712 :   const flatbuffers::Vector<flatbuffers::Offset<generated::ManifestRef>> *manifests() const {
     527        6712 :     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<generated::ManifestRef>> *>(VT_MANIFESTS);
     528             :   }
     529        6693 :   const flatbuffers::Vector<flatbuffers::Offset<generated::DimensionShapeV2>> *shape_v2() const {
     530        6693 :     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<generated::DimensionShapeV2>> *>(VT_SHAPE_V2);
     531             :   }
     532        2240 :   bool Verify(flatbuffers::Verifier &verifier) const {
     533        2240 :     return VerifyTableStart(verifier) &&
     534        2240 :            VerifyOffsetRequired(verifier, VT_SHAPE) &&
     535        2240 :            verifier.VerifyVector(shape()) &&
     536        2240 :            VerifyOffset(verifier, VT_DIMENSION_NAMES) &&
     537        2240 :            verifier.VerifyVector(dimension_names()) &&
     538        2240 :            verifier.VerifyVectorOfTables(dimension_names()) &&
     539        2240 :            VerifyOffsetRequired(verifier, VT_MANIFESTS) &&
     540        2240 :            verifier.VerifyVector(manifests()) &&
     541        2240 :            verifier.VerifyVectorOfTables(manifests()) &&
     542        2240 :            VerifyOffset(verifier, VT_SHAPE_V2) &&
     543        2240 :            verifier.VerifyVector(shape_v2()) &&
     544        6720 :            verifier.VerifyVectorOfTables(shape_v2()) &&
     545        4480 :            verifier.EndTable();
     546             :   }
     547             : };
     548             : 
     549             : struct ArrayNodeDataBuilder {
     550             :   typedef ArrayNodeData Table;
     551             :   flatbuffers::FlatBufferBuilder &fbb_;
     552             :   flatbuffers::uoffset_t start_;
     553             :   void add_shape(flatbuffers::Offset<flatbuffers::Vector<const generated::DimensionShape *>> shape) {
     554             :     fbb_.AddOffset(ArrayNodeData::VT_SHAPE, shape);
     555             :   }
     556             :   void add_dimension_names(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::DimensionName>>> dimension_names) {
     557             :     fbb_.AddOffset(ArrayNodeData::VT_DIMENSION_NAMES, dimension_names);
     558             :   }
     559             :   void add_manifests(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::ManifestRef>>> manifests) {
     560             :     fbb_.AddOffset(ArrayNodeData::VT_MANIFESTS, manifests);
     561             :   }
     562             :   void add_shape_v2(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::DimensionShapeV2>>> shape_v2) {
     563             :     fbb_.AddOffset(ArrayNodeData::VT_SHAPE_V2, shape_v2);
     564             :   }
     565             :   explicit ArrayNodeDataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
     566             :         : fbb_(_fbb) {
     567             :     start_ = fbb_.StartTable();
     568             :   }
     569             :   flatbuffers::Offset<ArrayNodeData> Finish() {
     570             :     const auto end = fbb_.EndTable(start_);
     571             :     auto o = flatbuffers::Offset<ArrayNodeData>(end);
     572             :     fbb_.Required(o, ArrayNodeData::VT_SHAPE);
     573             :     fbb_.Required(o, ArrayNodeData::VT_MANIFESTS);
     574             :     return o;
     575             :   }
     576             : };
     577             : 
     578             : inline flatbuffers::Offset<ArrayNodeData> CreateArrayNodeData(
     579             :     flatbuffers::FlatBufferBuilder &_fbb,
     580             :     flatbuffers::Offset<flatbuffers::Vector<const generated::DimensionShape *>> shape = 0,
     581             :     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::DimensionName>>> dimension_names = 0,
     582             :     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::ManifestRef>>> manifests = 0,
     583             :     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::DimensionShapeV2>>> shape_v2 = 0) {
     584             :   ArrayNodeDataBuilder builder_(_fbb);
     585             :   builder_.add_shape_v2(shape_v2);
     586             :   builder_.add_manifests(manifests);
     587             :   builder_.add_dimension_names(dimension_names);
     588             :   builder_.add_shape(shape);
     589             :   return builder_.Finish();
     590             : }
     591             : 
     592             : struct ArrayNodeData::Traits {
     593             :   using type = ArrayNodeData;
     594             :   static auto constexpr Create = CreateArrayNodeData;
     595             : };
     596             : 
     597             : inline flatbuffers::Offset<ArrayNodeData> CreateArrayNodeDataDirect(
     598             :     flatbuffers::FlatBufferBuilder &_fbb,
     599             :     const std::vector<generated::DimensionShape> *shape = nullptr,
     600             :     const std::vector<flatbuffers::Offset<generated::DimensionName>> *dimension_names = nullptr,
     601             :     const std::vector<flatbuffers::Offset<generated::ManifestRef>> *manifests = nullptr,
     602             :     const std::vector<flatbuffers::Offset<generated::DimensionShapeV2>> *shape_v2 = nullptr) {
     603             :   auto shape__ = shape ? _fbb.CreateVectorOfStructs<generated::DimensionShape>(*shape) : 0;
     604             :   auto dimension_names__ = dimension_names ? _fbb.CreateVector<flatbuffers::Offset<generated::DimensionName>>(*dimension_names) : 0;
     605             :   auto manifests__ = manifests ? _fbb.CreateVector<flatbuffers::Offset<generated::ManifestRef>>(*manifests) : 0;
     606             :   auto shape_v2__ = shape_v2 ? _fbb.CreateVector<flatbuffers::Offset<generated::DimensionShapeV2>>(*shape_v2) : 0;
     607             :   return generated::CreateArrayNodeData(
     608             :       _fbb,
     609             :       shape__,
     610             :       dimension_names__,
     611             :       manifests__,
     612             :       shape_v2__);
     613             : }
     614             : 
     615             : struct NodeSnapshot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     616             :   typedef NodeSnapshotBuilder Builder;
     617             :   struct Traits;
     618             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     619             :     VT_ID = 4,
     620             :     VT_PATH = 6,
     621             :     VT_USER_DATA = 8,
     622             :     VT_NODE_DATA_TYPE = 10,
     623             :     VT_NODE_DATA = 12,
     624             :     VT_EXTRA = 14
     625             :   };
     626        4408 :   const generated::ObjectId8 *id() const {
     627        4408 :     return GetStruct<const generated::ObjectId8 *>(VT_ID);
     628             :   }
     629        8816 :   const flatbuffers::String *path() const {
     630        8816 :     return GetPointer<const flatbuffers::String *>(VT_PATH);
     631             :   }
     632        8814 :   const flatbuffers::Vector<uint8_t> *user_data() const {
     633        8814 :     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_USER_DATA);
     634             :   }
     635        8814 :   generated::NodeData node_data_type() const {
     636        8814 :     return static_cast<generated::NodeData>(GetField<uint8_t>(VT_NODE_DATA_TYPE, 0));
     637             :   }
     638        6646 :   const void *node_data() const {
     639        6646 :     return GetPointer<const void *>(VT_NODE_DATA);
     640             :   }
     641             :   template<typename T> const T *node_data_as() const;
     642        4406 :   const generated::ArrayNodeData *node_data_as_Array() const {
     643        4406 :     return node_data_type() == generated::NodeData::Array ? static_cast<const generated::ArrayNodeData *>(node_data()) : nullptr;
     644             :   }
     645             :   const generated::GroupNodeData *node_data_as_Group() const {
     646             :     return node_data_type() == generated::NodeData::Group ? static_cast<const generated::GroupNodeData *>(node_data()) : nullptr;
     647             :   }
     648        4408 :   const flatbuffers::Vector<uint8_t> *extra() const {
     649        4408 :     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_EXTRA);
     650             :   }
     651        4408 :   bool Verify(flatbuffers::Verifier &verifier) const {
     652        4408 :     return VerifyTableStart(verifier) &&
     653        4408 :            VerifyFieldRequired<generated::ObjectId8>(verifier, VT_ID, 1) &&
     654        4408 :            VerifyOffsetRequired(verifier, VT_PATH) &&
     655        4408 :            verifier.VerifyString(path()) &&
     656        4408 :            VerifyOffsetRequired(verifier, VT_USER_DATA) &&
     657        4408 :            verifier.VerifyVector(user_data()) &&
     658        4408 :            VerifyField<uint8_t>(verifier, VT_NODE_DATA_TYPE, 1) &&
     659        4408 :            VerifyOffsetRequired(verifier, VT_NODE_DATA) &&
     660        4408 :            VerifyNodeData(verifier, node_data(), node_data_type()) &&
     661        4408 :            VerifyOffset(verifier, VT_EXTRA) &&
     662       13224 :            verifier.VerifyVector(extra()) &&
     663        8816 :            verifier.EndTable();
     664             :   }
     665             : };
     666             : 
     667             : template<> inline const generated::ArrayNodeData *NodeSnapshot::node_data_as<generated::ArrayNodeData>() const {
     668             :   return node_data_as_Array();
     669             : }
     670             : 
     671             : template<> inline const generated::GroupNodeData *NodeSnapshot::node_data_as<generated::GroupNodeData>() const {
     672             :   return node_data_as_Group();
     673             : }
     674             : 
     675             : struct NodeSnapshotBuilder {
     676             :   typedef NodeSnapshot Table;
     677             :   flatbuffers::FlatBufferBuilder &fbb_;
     678             :   flatbuffers::uoffset_t start_;
     679             :   void add_id(const generated::ObjectId8 *id) {
     680             :     fbb_.AddStruct(NodeSnapshot::VT_ID, id);
     681             :   }
     682             :   void add_path(flatbuffers::Offset<flatbuffers::String> path) {
     683             :     fbb_.AddOffset(NodeSnapshot::VT_PATH, path);
     684             :   }
     685             :   void add_user_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> user_data) {
     686             :     fbb_.AddOffset(NodeSnapshot::VT_USER_DATA, user_data);
     687             :   }
     688             :   void add_node_data_type(generated::NodeData node_data_type) {
     689             :     fbb_.AddElement<uint8_t>(NodeSnapshot::VT_NODE_DATA_TYPE, static_cast<uint8_t>(node_data_type), 0);
     690             :   }
     691             :   void add_node_data(flatbuffers::Offset<void> node_data) {
     692             :     fbb_.AddOffset(NodeSnapshot::VT_NODE_DATA, node_data);
     693             :   }
     694             :   void add_extra(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> extra) {
     695             :     fbb_.AddOffset(NodeSnapshot::VT_EXTRA, extra);
     696             :   }
     697             :   explicit NodeSnapshotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
     698             :         : fbb_(_fbb) {
     699             :     start_ = fbb_.StartTable();
     700             :   }
     701             :   flatbuffers::Offset<NodeSnapshot> Finish() {
     702             :     const auto end = fbb_.EndTable(start_);
     703             :     auto o = flatbuffers::Offset<NodeSnapshot>(end);
     704             :     fbb_.Required(o, NodeSnapshot::VT_ID);
     705             :     fbb_.Required(o, NodeSnapshot::VT_PATH);
     706             :     fbb_.Required(o, NodeSnapshot::VT_USER_DATA);
     707             :     fbb_.Required(o, NodeSnapshot::VT_NODE_DATA);
     708             :     return o;
     709             :   }
     710             : };
     711             : 
     712             : inline flatbuffers::Offset<NodeSnapshot> CreateNodeSnapshot(
     713             :     flatbuffers::FlatBufferBuilder &_fbb,
     714             :     const generated::ObjectId8 *id = nullptr,
     715             :     flatbuffers::Offset<flatbuffers::String> path = 0,
     716             :     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> user_data = 0,
     717             :     generated::NodeData node_data_type = generated::NodeData::NONE,
     718             :     flatbuffers::Offset<void> node_data = 0,
     719             :     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> extra = 0) {
     720             :   NodeSnapshotBuilder builder_(_fbb);
     721             :   builder_.add_extra(extra);
     722             :   builder_.add_node_data(node_data);
     723             :   builder_.add_user_data(user_data);
     724             :   builder_.add_path(path);
     725             :   builder_.add_id(id);
     726             :   builder_.add_node_data_type(node_data_type);
     727             :   return builder_.Finish();
     728             : }
     729             : 
     730             : struct NodeSnapshot::Traits {
     731             :   using type = NodeSnapshot;
     732             :   static auto constexpr Create = CreateNodeSnapshot;
     733             : };
     734             : 
     735             : inline flatbuffers::Offset<NodeSnapshot> CreateNodeSnapshotDirect(
     736             :     flatbuffers::FlatBufferBuilder &_fbb,
     737             :     const generated::ObjectId8 *id = nullptr,
     738             :     const char *path = nullptr,
     739             :     const std::vector<uint8_t> *user_data = nullptr,
     740             :     generated::NodeData node_data_type = generated::NodeData::NONE,
     741             :     flatbuffers::Offset<void> node_data = 0,
     742             :     const std::vector<uint8_t> *extra = nullptr) {
     743             :   auto path__ = path ? _fbb.CreateString(path) : 0;
     744             :   auto user_data__ = user_data ? _fbb.CreateVector<uint8_t>(*user_data) : 0;
     745             :   auto extra__ = extra ? _fbb.CreateVector<uint8_t>(*extra) : 0;
     746             :   return generated::CreateNodeSnapshot(
     747             :       _fbb,
     748             :       id,
     749             :       path__,
     750             :       user_data__,
     751             :       node_data_type,
     752             :       node_data,
     753             :       extra__);
     754             : }
     755             : 
     756             : struct Snapshot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
     757             :   typedef SnapshotBuilder Builder;
     758             :   struct Traits;
     759             :   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
     760             :     VT_ID = 4,
     761             :     VT_PARENT_ID = 6,
     762             :     VT_NODES = 8,
     763             :     VT_FLUSHED_AT = 10,
     764             :     VT_MESSAGE = 12,
     765             :     VT_METADATA = 14,
     766             :     VT_MANIFEST_FILES = 16,
     767             :     VT_MANIFEST_FILES_V2 = 18,
     768             :     VT_EXTRA = 20
     769             :   };
     770        2189 :   const generated::ObjectId12 *id() const {
     771        2189 :     return GetStruct<const generated::ObjectId12 *>(VT_ID);
     772             :   }
     773             :   const generated::ObjectId12 *parent_id() const {
     774             :     return GetStruct<const generated::ObjectId12 *>(VT_PARENT_ID);
     775             :   }
     776        6566 :   const flatbuffers::Vector<flatbuffers::Offset<generated::NodeSnapshot>> *nodes() const {
     777        6566 :     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<generated::NodeSnapshot>> *>(VT_NODES);
     778             :   }
     779        2188 :   uint64_t flushed_at() const {
     780        2188 :     return GetField<uint64_t>(VT_FLUSHED_AT, 0);
     781             :   }
     782        4377 :   const flatbuffers::String *message() const {
     783        4377 :     return GetPointer<const flatbuffers::String *>(VT_MESSAGE);
     784             :   }
     785        6566 :   const flatbuffers::Vector<flatbuffers::Offset<generated::MetadataItem>> *metadata() const {
     786        6566 :     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<generated::MetadataItem>> *>(VT_METADATA);
     787             :   }
     788        2203 :   const flatbuffers::Vector<const generated::ManifestFileInfo *> *manifest_files() const {
     789        2203 :     return GetPointer<const flatbuffers::Vector<const generated::ManifestFileInfo *> *>(VT_MANIFEST_FILES);
     790             :   }
     791        6539 :   const flatbuffers::Vector<flatbuffers::Offset<generated::ManifestFileInfoV2>> *manifest_files_v2() const {
     792        6539 :     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<generated::ManifestFileInfoV2>> *>(VT_MANIFEST_FILES_V2);
     793             :   }
     794        2189 :   const flatbuffers::Vector<uint8_t> *extra() const {
     795        2189 :     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_EXTRA);
     796             :   }
     797        2189 :   bool Verify(flatbuffers::Verifier &verifier) const {
     798        2189 :     return VerifyTableStart(verifier) &&
     799        2189 :            VerifyFieldRequired<generated::ObjectId12>(verifier, VT_ID, 1) &&
     800        2189 :            VerifyField<generated::ObjectId12>(verifier, VT_PARENT_ID, 1) &&
     801        2189 :            VerifyOffsetRequired(verifier, VT_NODES) &&
     802        2189 :            verifier.VerifyVector(nodes()) &&
     803        2189 :            verifier.VerifyVectorOfTables(nodes()) &&
     804        2189 :            VerifyField<uint64_t>(verifier, VT_FLUSHED_AT, 8) &&
     805        2189 :            VerifyOffsetRequired(verifier, VT_MESSAGE) &&
     806        2189 :            verifier.VerifyString(message()) &&
     807        2189 :            VerifyOffsetRequired(verifier, VT_METADATA) &&
     808        2189 :            verifier.VerifyVector(metadata()) &&
     809        2189 :            verifier.VerifyVectorOfTables(metadata()) &&
     810        2189 :            VerifyOffsetRequired(verifier, VT_MANIFEST_FILES) &&
     811        2189 :            verifier.VerifyVector(manifest_files()) &&
     812        2189 :            VerifyOffset(verifier, VT_MANIFEST_FILES_V2) &&
     813        2189 :            verifier.VerifyVector(manifest_files_v2()) &&
     814        2189 :            verifier.VerifyVectorOfTables(manifest_files_v2()) &&
     815        2189 :            VerifyOffset(verifier, VT_EXTRA) &&
     816        6567 :            verifier.VerifyVector(extra()) &&
     817        4378 :            verifier.EndTable();
     818             :   }
     819             : };
     820             : 
     821             : struct SnapshotBuilder {
     822             :   typedef Snapshot Table;
     823             :   flatbuffers::FlatBufferBuilder &fbb_;
     824             :   flatbuffers::uoffset_t start_;
     825             :   void add_id(const generated::ObjectId12 *id) {
     826             :     fbb_.AddStruct(Snapshot::VT_ID, id);
     827             :   }
     828             :   void add_parent_id(const generated::ObjectId12 *parent_id) {
     829             :     fbb_.AddStruct(Snapshot::VT_PARENT_ID, parent_id);
     830             :   }
     831             :   void add_nodes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::NodeSnapshot>>> nodes) {
     832             :     fbb_.AddOffset(Snapshot::VT_NODES, nodes);
     833             :   }
     834             :   void add_flushed_at(uint64_t flushed_at) {
     835             :     fbb_.AddElement<uint64_t>(Snapshot::VT_FLUSHED_AT, flushed_at, 0);
     836             :   }
     837             :   void add_message(flatbuffers::Offset<flatbuffers::String> message) {
     838             :     fbb_.AddOffset(Snapshot::VT_MESSAGE, message);
     839             :   }
     840             :   void add_metadata(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::MetadataItem>>> metadata) {
     841             :     fbb_.AddOffset(Snapshot::VT_METADATA, metadata);
     842             :   }
     843             :   void add_manifest_files(flatbuffers::Offset<flatbuffers::Vector<const generated::ManifestFileInfo *>> manifest_files) {
     844             :     fbb_.AddOffset(Snapshot::VT_MANIFEST_FILES, manifest_files);
     845             :   }
     846             :   void add_manifest_files_v2(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::ManifestFileInfoV2>>> manifest_files_v2) {
     847             :     fbb_.AddOffset(Snapshot::VT_MANIFEST_FILES_V2, manifest_files_v2);
     848             :   }
     849             :   void add_extra(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> extra) {
     850             :     fbb_.AddOffset(Snapshot::VT_EXTRA, extra);
     851             :   }
     852             :   explicit SnapshotBuilder(flatbuffers::FlatBufferBuilder &_fbb)
     853             :         : fbb_(_fbb) {
     854             :     start_ = fbb_.StartTable();
     855             :   }
     856             :   flatbuffers::Offset<Snapshot> Finish() {
     857             :     const auto end = fbb_.EndTable(start_);
     858             :     auto o = flatbuffers::Offset<Snapshot>(end);
     859             :     fbb_.Required(o, Snapshot::VT_ID);
     860             :     fbb_.Required(o, Snapshot::VT_NODES);
     861             :     fbb_.Required(o, Snapshot::VT_MESSAGE);
     862             :     fbb_.Required(o, Snapshot::VT_METADATA);
     863             :     fbb_.Required(o, Snapshot::VT_MANIFEST_FILES);
     864             :     return o;
     865             :   }
     866             : };
     867             : 
     868             : inline flatbuffers::Offset<Snapshot> CreateSnapshot(
     869             :     flatbuffers::FlatBufferBuilder &_fbb,
     870             :     const generated::ObjectId12 *id = nullptr,
     871             :     const generated::ObjectId12 *parent_id = nullptr,
     872             :     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::NodeSnapshot>>> nodes = 0,
     873             :     uint64_t flushed_at = 0,
     874             :     flatbuffers::Offset<flatbuffers::String> message = 0,
     875             :     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::MetadataItem>>> metadata = 0,
     876             :     flatbuffers::Offset<flatbuffers::Vector<const generated::ManifestFileInfo *>> manifest_files = 0,
     877             :     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<generated::ManifestFileInfoV2>>> manifest_files_v2 = 0,
     878             :     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> extra = 0) {
     879             :   SnapshotBuilder builder_(_fbb);
     880             :   builder_.add_flushed_at(flushed_at);
     881             :   builder_.add_extra(extra);
     882             :   builder_.add_manifest_files_v2(manifest_files_v2);
     883             :   builder_.add_manifest_files(manifest_files);
     884             :   builder_.add_metadata(metadata);
     885             :   builder_.add_message(message);
     886             :   builder_.add_nodes(nodes);
     887             :   builder_.add_parent_id(parent_id);
     888             :   builder_.add_id(id);
     889             :   return builder_.Finish();
     890             : }
     891             : 
     892             : struct Snapshot::Traits {
     893             :   using type = Snapshot;
     894             :   static auto constexpr Create = CreateSnapshot;
     895             : };
     896             : 
     897             : inline flatbuffers::Offset<Snapshot> CreateSnapshotDirect(
     898             :     flatbuffers::FlatBufferBuilder &_fbb,
     899             :     const generated::ObjectId12 *id = nullptr,
     900             :     const generated::ObjectId12 *parent_id = nullptr,
     901             :     const std::vector<flatbuffers::Offset<generated::NodeSnapshot>> *nodes = nullptr,
     902             :     uint64_t flushed_at = 0,
     903             :     const char *message = nullptr,
     904             :     const std::vector<flatbuffers::Offset<generated::MetadataItem>> *metadata = nullptr,
     905             :     const std::vector<generated::ManifestFileInfo> *manifest_files = nullptr,
     906             :     const std::vector<flatbuffers::Offset<generated::ManifestFileInfoV2>> *manifest_files_v2 = nullptr,
     907             :     const std::vector<uint8_t> *extra = nullptr) {
     908             :   auto nodes__ = nodes ? _fbb.CreateVector<flatbuffers::Offset<generated::NodeSnapshot>>(*nodes) : 0;
     909             :   auto message__ = message ? _fbb.CreateString(message) : 0;
     910             :   auto metadata__ = metadata ? _fbb.CreateVector<flatbuffers::Offset<generated::MetadataItem>>(*metadata) : 0;
     911             :   auto manifest_files__ = manifest_files ? _fbb.CreateVectorOfStructs<generated::ManifestFileInfo>(*manifest_files) : 0;
     912             :   auto manifest_files_v2__ = manifest_files_v2 ? _fbb.CreateVector<flatbuffers::Offset<generated::ManifestFileInfoV2>>(*manifest_files_v2) : 0;
     913             :   auto extra__ = extra ? _fbb.CreateVector<uint8_t>(*extra) : 0;
     914             :   return generated::CreateSnapshot(
     915             :       _fbb,
     916             :       id,
     917             :       parent_id,
     918             :       nodes__,
     919             :       flushed_at,
     920             :       message__,
     921             :       metadata__,
     922             :       manifest_files__,
     923             :       manifest_files_v2__,
     924             :       extra__);
     925             : }
     926             : 
     927        4408 : inline bool VerifyNodeData(flatbuffers::Verifier &verifier, const void *obj, NodeData type) {
     928        4408 :   switch (type) {
     929           0 :     case NodeData::NONE: {
     930           0 :       return true;
     931             :     }
     932        2240 :     case NodeData::Array: {
     933        2240 :       auto ptr = reinterpret_cast<const generated::ArrayNodeData *>(obj);
     934        2240 :       return verifier.VerifyTable(ptr);
     935             :     }
     936        2168 :     case NodeData::Group: {
     937        2168 :       auto ptr = reinterpret_cast<const generated::GroupNodeData *>(obj);
     938        2168 :       return verifier.VerifyTable(ptr);
     939             :     }
     940           0 :     default: return true;
     941             :   }
     942             : }
     943             : 
     944             : inline bool VerifyNodeDataVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<NodeData> *types) {
     945             :   if (!values || !types) return !values && !types;
     946             :   if (values->size() != types->size()) return false;
     947             :   for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
     948             :     if (!VerifyNodeData(
     949             :         verifier,  values->Get(i), types->GetEnum<NodeData>(i))) {
     950             :       return false;
     951             :     }
     952             :   }
     953             :   return true;
     954             : }
     955             : 
     956        2189 : inline const generated::Snapshot *GetSnapshot(const void *buf) {
     957        2189 :   return flatbuffers::GetRoot<generated::Snapshot>(buf);
     958             : }
     959             : 
     960             : inline const generated::Snapshot *GetSizePrefixedSnapshot(const void *buf) {
     961             :   return flatbuffers::GetSizePrefixedRoot<generated::Snapshot>(buf);
     962             : }
     963             : 
     964        2190 : inline bool VerifySnapshotBuffer(
     965             :     flatbuffers::Verifier &verifier) {
     966        2190 :   return verifier.VerifyBuffer<generated::Snapshot>(nullptr);
     967             : }
     968             : 
     969             : inline bool VerifySizePrefixedSnapshotBuffer(
     970             :     flatbuffers::Verifier &verifier) {
     971             :   return verifier.VerifySizePrefixedBuffer<generated::Snapshot>(nullptr);
     972             : }
     973             : 
     974             : inline void FinishSnapshotBuffer(
     975             :     flatbuffers::FlatBufferBuilder &fbb,
     976             :     flatbuffers::Offset<generated::Snapshot> root) {
     977             :   fbb.Finish(root);
     978             : }
     979             : 
     980             : inline void FinishSizePrefixedSnapshotBuffer(
     981             :     flatbuffers::FlatBufferBuilder &fbb,
     982             :     flatbuffers::Offset<generated::Snapshot> root) {
     983             :   fbb.FinishSizePrefixed(root);
     984             : }
     985             : 
     986             : }  // namespace generated
     987             : 
     988             : #endif  // FLATBUFFERS_GENERATED_SNAPSHOT_GENERATED_H_

Generated by: LCOV version 1.14