1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! The single cell data layer: the bixverse binary sparse format, its
//! streaming readers and writers, and ingestion from h5ad, 10x h5 (feature
//! `h5`) and MTX.
//!
//! ## Feature flags
/// Version of this crate.
///
/// Exposed so a dependent can report which version of the numerics it was
/// built against. The Python bindings version independently and vendor this
/// crate through a path dependency, so their own version number says nothing
/// about what is inside the wheel; this does.
pub const VERSION: &str = env!;
/// How many cells to read in per given batch - global constant
pub const CELL_BATCH_SIZE: usize = 50_000;
/// Version of the single cell files writers emit: delta bit-packed chunks with
/// the normalised layer recomputed on read.
pub const SC_FILE_VERSION: u32 = 4;
/// Previous file version: absolute `u32` indices, normalised layer stored.
/// Readers still open it; `v4_io::upgrade_store_to_v4` converts it.
pub const SC_FILE_VERSION_V3: u32 = 3;
/// Number of cell rows requested per HDF5 hyperslab read.
///
/// This is a slice height for the h5 layer, not a cell batch size: it bounds
/// how much of a dataset is materialised at once during ingest. Deliberately
/// far smaller than [`CELL_BATCH_SIZE`], which sizes reads against the
/// bixverse binary format.
pub const H5_CELL_SLICE_SIZE: usize = 1_000;