// Copyright 2011-2020 David Robillard // SPDX-License-Identifier: ISC #ifndef SERD_SRC_MODEL_H #define SERD_SRC_MODEL_H #include "cursor.h" #include "serd/cursor.h" #include "serd/model.h" #include "serd/nodes.h" #include "serd/world.h" #include "zix/allocator.h" #include "zix/btree.h" #include struct SerdModelImpl { ZixAllocator* allocator; ///< Allocator for everything in this model SerdWorld* world; ///< World this model is a part of SerdNodes* nodes; ///< Interned nodes in this model ZixBTree* indices[12]; ///< Trees of SerdStatement pointers SerdCursor end; ///< End cursor (always the same) size_t version; ///< Version incremented on every change SerdStatementOrder default_order; ///< Order for main statement-owning index SerdModelFlags flags; ///< Active indices and features }; #endif // SERD_SRC_MODEL_H