Skip to main content

sim_lib_stream_combinators/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Lazy in-memory stream combinators for STREAM 6.
4//!
5//! This crate composes stream-core packet spines without talking to devices,
6//! files, or transports. Later Lisp and remote surfaces can lower graph forms
7//! into these Rust-level combinators.
8
9mod bridge;
10mod cell;
11mod event_algebra;
12mod ops;
13mod recording;
14mod stream;
15
16pub use bridge::{event_rate_gate, jitter_buffer, latency_comp_delay, resample_pcm};
17pub use cell::{CellSnapshot, StreamCell, stream_cell};
18pub use event_algebra::{
19    event_join_data_kind, expr_path, filter_data_field_eq, join_data_on_field,
20    model_event_data_kind, project_data_field, rank_data_by_i64_field, rank_frontier_data_kind,
21    redact_data_field,
22};
23pub use ops::{
24    ClockConvertedStream, StreamStage, clock_convert, fan, filter, filter_data_kind,
25    filter_data_kind_stage, filter_data_shape, filter_data_shape_stage, filter_stage, identity,
26    map, map_data_expr, map_data_expr_stage, map_stage, merge, merge_by_clock, pipe, run_bang,
27    stream_window_data_kind, take, take_stage, tap, tap_diagnostics, tap_diagnostics_stage,
28    tap_stage, window_by_count, window_by_count_stage,
29};
30pub use recording::{
31    DEFAULT_RECORD_ITEM_LIMIT, SeekTarget, StreamRecording, record_bang, record_bang_bounded,
32    record_cassette_bang, record_cassette_bang_bounded, record_events, record_ledger_run,
33    record_ledger_slice, replay, replay_cassette, seek,
34};
35pub use stream::{Stream, StreamNode};
36
37#[cfg(test)]
38mod bridge_tests;
39
40#[cfg(test)]
41mod event_algebra_tests;
42#[cfg(test)]
43mod tests;