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
//! Z-set algebra: the functions of one Z-set, and the key encoders they share.
//!
//! - `linear` — filter, union (Theorem 3.3: no state added)
//! - `map` — `MapPlan`, the columnar driver behind every map and projection
//! - `exchange` — the scatter plan of a worker exchange
//! - `aggregate` — the accumulators, a reduce's row shape, and the ad-hoc fold
//! - `group_key` — a group as the output PK a reduce over it stamps
//! - `reindex` — the key composers a reindex Map and an exchange scatter share, and a
//! secondary index's entries
//! - `order_image` — the byte images an ordered index keys by
//! - `sink` — the sink of an ad-hoc read: forward, top-k or fold
//!
//! Nothing here reads a trace: each is a function of the one batch it is handed.
//! The linear ones are their own incremental form, so the read executor in
//! `gnitz-store` and the circuit VM in `gnitz-server` call the same kernels; the
//! ad-hoc fold and the top-k sink are one-shot folds only a read runs. The
//! operators that do read a trace are the `stream` rung above, which builds on
//! the aggregate, group-key and image machinery here.
//!
//! A `pub use` below is named by another crate; a `pub(crate) use` is what
//! `stream` reaches. The submodules stay private.
//!
//! Unit tests live in `tests/<module>.rs`, attached with `#[path]` to the module
//! they cover, so each stays that module's own `tests` child and reaches its
//! private items.
pub use ;
pub use ;
pub use MapPlan;
pub use ;
pub use SinkPlan;
pub use ;
pub use ;
pub use ;
pub use ReindexPacker;