1#[cfg(test)]
15use rustdv_vpi_stubs as _;
16
17pub mod clock;
18pub mod combinators;
19pub mod executor;
20pub mod handle;
21pub mod log;
22pub mod path;
23pub mod phase;
24pub mod queue;
25pub mod rng;
26pub mod sync;
27pub mod testing;
28pub mod time;
29pub mod triggers;
30
31pub use clock::Clock;
32pub use combinators::{first2, join2, join_all, with_timeout, Either, TimeoutError};
33pub use executor::{spawn, spawn_named, Executor, TaskError, TaskHandle, TaskId, TaskState};
34pub use path::RustdvPath;
35pub use handle::{AnyHandle, HierarchyHandle, LogicHandle};
36pub use phase::{read_only, read_write, next_time_step};
37pub use queue::Queue;
38pub use rng::Rng;
39pub use sync::{Event, Lock, LockGuard};
40pub use time::{sim_time_ns, sim_time_steps, SimDuration};
41pub use triggers::{NullTrigger, Timer};
42
43pub use rustdv_gpi::{HandleError, Logic, LogicArray, ValueError};
44
45pub fn init() -> Executor {
48 phase::init_hub();
49 executor::init()
50}