Skip to main content

uiharu_core/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2
3//! uiharu, a streaming protocol decode engine: decoders run as resumable state machines over
4//! blocks of logic samples, exchange typed events through bounded streams with backpressure,
5//! and are wired into a checked decode graph.
6
7#![forbid(unsafe_code)]
8
9pub mod dsl;
10pub mod exec;
11pub mod graph;
12pub mod hex_u64;
13pub mod node;
14pub mod schema;
15pub mod signal;
16pub mod stream;
17#[cfg(feature = "testing")]
18pub mod testing;
19pub mod time;
20
21pub use exec::{Exposed, Pipeline, PushError, QueueStat, RunReport, Stats};
22pub use graph::{
23    DynExposedRef, DynInput, DynOutput, ExposedRef, Graph, GraphConfig, GraphError, InputRef,
24    NodeId, OutputRef, SourceHandle, SourceId, SourceSpec,
25};
26pub use node::{
27    Inbox, Io, Node, NodeCx, NodeFuture, NodeSpec, Outbox, ProgressSink, Provenance, Readable,
28    Wait, ready_all,
29};
30pub use schema::{
31    EventSchema, InputSpec, OutputSpec, PropValue, Props, Requirement, Requires, SchemaId,
32};
33pub use signal::{
34    BlockError, Change, ChannelMask, LOGIC_SAMPLES, Levels, LogicBlock, LogicBlockBuilder,
35    MAX_CHANNELS, Sample, SignalCursor, SignalItem,
36};
37pub use stream::{Broadcast, Event, Item, ReaderId};
38pub use time::{Tick, TickRange, TimeBase};