|
libzarr
Header-only C++17 Zarr v2/v3, WASM-compatible
|
#include <cstdint>#include <limits>#include <memory>#include <optional>#include <string>#include <string_view>#include <utility>#include <vector>#include "libzarr/codecs.hpp"#include "libzarr/detail/common.hpp"#include "libzarr/metadata.hpp"#include "libzarr/store.hpp"#include "libzarr/types.hpp"#include "libzarr/v2.hpp"#include "libzarr/v3.hpp"Go to the source code of this file.
Classes | |
| struct | zarr::shard::Placement |
| struct | zarr::shard::Extent |
Namespaces | |
| namespace | zarr::shard |
Functions | |
| Placement | zarr::shard::place (const ArrayMeta &meta, const std::string &path, const std::vector< std::uint64_t > &inner_index, std::size_t level=0) |
| Extent | zarr::shard::extent (const ArrayMeta &meta, const Bytes &index_bytes, std::uint64_t slot, std::size_t level=0) |
| Bytes | zarr::shard::pack (const ArrayMeta &meta, const std::vector< std::optional< Bytes > > &entries, std::size_t level=0) |
The sharding_indexed codec, modeled as a Store adapter rather than a codec: a shard is simply the outer chunk's stored object, and ShardStore maps inner-chunk keys onto byte ranges of it via the trailing (or leading) index. The array machinery above stays completely unaware, and nested sharding falls out as ShardStore-wrapping-ShardStore.