Skip to content
Welcome to the new CppUtils documentation!
using CppUtils::FileSystem::IndexedStorage::Entry = IndexedStorageEntry;
using CppUtils::FileSystem::IndexedStorage::FreeBlock = IndexedStorageFreeBlock;
using CppUtils::FileSystem::IndexedStorage::IndexMap = std::unordered_map<std::size_t, Entry>;
using CppUtils::FileSystem::IndexedStorage::FreeList = std::multimap<std::size_t, FreeBlock>;
explicit IndexedStorage::IndexedStorage(std::filesystem::path directory, std::optional<std::size_t> maxChunkSize = std::nullopt);

IndexedStorage::~IndexedStorage();

IndexedStorage::IndexedStorage(const IndexedStorage&) = delete;

auto IndexedStorage::operator=(const IndexedStorage&) -> IndexedStorage& = delete;

template <Type::Serializable T>
auto IndexedStorage::store(std::size_t id, const T& value) -> void;

template <Type::Serializable T>
[[nodiscard]] auto IndexedStorage::load(std::size_t id) const -> std::expected<T, std::string_view>;

[[nodiscard]] auto IndexedStorage::contains(std::size_t id) const -> bool;

auto IndexedStorage::remove(std::size_t id) -> void;

[[nodiscard]] auto IndexedStorage::getIndex() const -> Thread::ReadOnlyAccessor<IndexMap>;

auto IndexedStorage::flush() -> void;