//! `aura-core` — the shared contract every aura component links against. //! //! This crate is the boundary forced by the cdylib hot-reload model: both the //! engine and every hot-reloadable node cdylib depend on it, so it stays small //! and stable. //! //! Delivered so far (cycle 0001 — the streaming substrate): //! //! - the four scalar base types streamed as SoA: [`Scalar`] / [`ScalarKind`] / //! [`Timestamp`] (C7); //! - [`Column`] — a fixed-capacity, bounded-lookback ring with financial //! indexing (index 0 = newest) and a `run_count` freshness primitive (C5/C8), //! read zero-copy through a [`Window`]; //! - [`AnyColumn`] — the type-erased edge over the four column kinds, with an //! edge-time kind check ([`KindMismatch`]) (C7). //! //! Delivered in cycle 0002 — the node contract: //! //! - [`Node`] — the `lookbacks`/`eval` contract every node implements (C8); the //! static signature ([`NodeSchema`] / [`PortSpec`] declaring input ports by kind //! and the output record of [`FieldSpec`] columns; length 1 = scalar) is declared //! on the node's [`PrimitiveBuilder`], pre-build; //! - [`Ctx`] — the per-`eval` read-side: zero-copy, financial-indexed [`Window`] //! access into each input (closing the cycle-0001 read-side gap on //! [`AnyColumn`]). //! //! Still to come (subsequent cycles): the broker-independent //! position-event output and downstream broker nodes (C10), and the run registry //! (C18/C22). mod any; mod cell; mod column; mod ctx; mod error; mod node; mod scalar; mod series_fold; pub use any::AnyColumn; pub use cell::Cell; pub use column::{Column, Window}; pub use ctx::Ctx; pub use error::KindMismatch; pub use node::{ zip_params, BindOpError, BoundParam, FieldSpec, Firing, Node, NodeSchema, ParamSpec, PortSpec, PrimitiveBuilder, }; pub use scalar::{Scalar, ScalarKind, Timestamp}; pub use series_fold::SeriesFold;