libzarr
Header-only C++17 Zarr v2/v3, WASM-compatible
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
types.hpp File Reference
#include <cassert>
#include <cstdint>
#include <stdexcept>
#include <vector>

Go to the source code of this file.

Classes

class  zarr::error
 
struct  zarr::DataType
 A concrete element type: kind plus size (the size only varies for raw). More...
 

Macros

#define LIBZARR_VERSION_MAJOR   1
 Library major version.
 
#define LIBZARR_VERSION_MINOR   0
 Library minor version.
 
#define LIBZARR_VERSION_PATCH   0
 Library patch version.
 
#define LIBZARR_DEPRECATED(msg)   [[deprecated(msg)]]
 

Typedefs

using zarr::Bytes = std::vector< std::uint8_t >
 Owned byte buffer used throughout the value-based public API.
 

Enumerations

enum class  zarr::ZarrFormat : std::uint8_t { v2 = 2 , v3 = 3 }
 Zarr storage format version.
 
enum class  zarr::DType : std::uint8_t {
  boolean , int8 , int16 , int32 ,
  int64 , uint8 , uint16 , uint32 ,
  uint64 , float16 , float32 , float64 ,
  complex64 , complex128 , raw
}
 

Functions

constexpr bool zarr::is_float (DType kind)
 True for float16/float32/float64.
 
constexpr bool zarr::is_signed_int (DType kind)
 True for int8..int64.
 
constexpr bool zarr::is_unsigned_int (DType kind)
 True for uint8..uint64.
 
constexpr bool zarr::is_complex (DType kind)
 True for complex64/complex128.
 
constexpr std::uint32_t zarr::fixed_itemsize (DType kind)
 

Detailed Description

Fundamental types shared across libzarr: the error type, the byte buffer alias, data types, and library version macros.

Macro Definition Documentation

◆ LIBZARR_DEPRECATED

#define LIBZARR_DEPRECATED (   msg)    [[deprecated(msg)]]

Marks a public symbol deprecated with a migration message. Per docs/COMPATIBILITY.md a deprecated symbol is kept — emitting a compiler warning — for at least one minor release before removal in the next major.

Enumeration Type Documentation

◆ DType

enum class zarr::DType : std::uint8_t
strong

Element type kinds. raw is a fixed-size byte string (v2 |V<n>, v3 r<bits>) whose size lives in DataType::itemsize.

Function Documentation

◆ fixed_itemsize()

constexpr std::uint32_t zarr::fixed_itemsize ( DType  kind)
constexpr

Element size in bytes fixed by the kind; 0 for DType::raw (whose size is per-array).