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    SeekTarget, StreamRecording, record_bang, record_cassette_bang, record_events,
32    record_ledger_run, record_ledger_slice, replay, replay_cassette, seek,
33};
34pub use stream::{Stream, StreamNode};
35
36#[cfg(test)]
37mod bridge_tests;
38
39#[cfg(test)]
40mod event_algebra_tests;
41#[cfg(test)]
42mod tests;