#pragma once #include "CodegenDecl.hpp" #include "CodegenModel.hpp" #include #include namespace Utils { sqlite3_stmt* NewSqliteStatement(sqlite3* database, std::string_view sql); } // namespace Utils class CodegenModelArchive { private: class Private; Private* m; public: CodegenModelArchive(std::string_view dbPath); ~CodegenModelArchive(); // Implementation detail helper, don't use outside Private& GetPimpl() const { return *m; } void Store(const CodegenModel& cgInput); void StoreStruct(const DeclStruct& decl); void StoreFunction(const DeclFunction& decl); void StoreEnum(const DeclEnum& decl); };