vj_sim/lib.rs
1//! `vj-sim`: the netlist/analysis/state/scheduler/process/determinism kernel
2//! (ARCHITECTURE.md §3, §6.2-6.5).
3//!
4//! This wave materializes only the cross-track contract surface each module
5//! exposes to the others and to `vj-codegen`/`vj-runtime`/`vj-debug`
6//! (types, traits, `#[repr(C)]` ABI-adjacent shapes) — the tracks that own each
7//! module (state, sched, netlist, A2-process, and the determinism face-off winner)
8//! fill in the real elaboration/scheduling/rollback logic in later waves. See
9//! `docs/CONTRACTS.md` for the full item -> owning-track -> consumer -> ledger-id
10//! table.
11
12pub mod analysis;
13pub mod collections;
14pub mod constraints;
15pub mod covergroup;
16pub mod determinism;
17pub mod dpi_task;
18pub mod driver_counts;
19pub mod fiber;
20pub mod image;
21pub mod netlist;
22// Classes plan (`docs/superpowers/plans/2026-10-03-classes.md`) Task 3: the
23// object heap runtime. Pure Rust, no sv-lang dependency (like `collections`
24// just above) — unconditional, not behind the `frontend` feature, so
25// `vj-runtime` (which depends on this crate with `default-features =
26// false`) can use it once Tasks 5+ wire codegen's calls to it.
27pub mod objects;
28pub mod process;
29pub mod winref;
30// Pattern matching (LRM 12.6): the pattern-variable discovery the declared-locals
31// scans share.
32#[cfg(feature = "frontend")]
33pub mod patterns;
34pub mod sched;
35pub mod state;
36pub mod strings;
37pub mod sva;
38pub mod symid;
39pub mod timing_types;