#pragma once #include #include "leveldb/cache.h" #include "leveldb/db.h" #include "result.hpp" namespace database { class Database { public: enum DatabaseError { FAILED_TO_OPEN, }; static auto Open() -> cpp::result; ~Database(); private: std::unique_ptr db_; std::unique_ptr cache_; Database(leveldb::DB* db, leveldb::Cache* cache); }; } // namespace database