#pragma once #include "fwd.hpp" #include #include #include struct KnowledgeId { size_t id; }; class KnowledgeFragment { private: QDateTime createTime; QDateTime modifyTime; KnowledgeId id; public: KnowledgeFragment(KnowledgeId id); KnowledgeId getId() const; }; class KnowledgeDatabase { private: std::vector storage; std::vector index; // Mapping from KnowledgeId (index) to `storage` index KnowledgeId nextId; public: KnowledgeId allocateFragment(); bool deleteFragment(KnowledgeId id); KnowledgeFragment* getFragment(KnowledgeId id); };