Expand description
Deterministic simulation scheduling and telemetry accumulation.
use wowlab_engine_ports::{Event, SimState};
use wowlab_engine_sim::EventQueue;
use wowlab_engine_telemetry::TelemetrySink;
use wowlab_types::sim::SimTime;
fn canonical_ports(_: Option<Event>, _: Option<SimState>, _: Option<TelemetrySink>) {}
let mut queue = EventQueue::new();
queue.push(Event::PlayerReady {
t: SimTime::from_millis(25),
});
queue.push(Event::PlayerReady {
t: SimTime::from_millis(10),
});
assert_eq!(queue.pop().map(|event| event.timestamp()), Some(SimTime::from_millis(10)));โ
use wowlab_engine_sim::{Event, SimState, TelemetrySink};Modulesยง
- engine ๐
- queue ๐
- Timing wheel event queue: 32768 slots x 32ms, far-future events held in an overflow bucket reinserted on rotation.
- telemetry ๐
- Cross-iteration telemetry accumulation, capture, encoding, and parallel merge.
Structsยง
- Event
Queue - Priority event queue using a timing wheel with arena-allocated linked lists.
- Representative
Iteration - Deterministic identity and DPS for one completed iteration, the only per-iteration state retained for representative selection.
- Running
DpsStats - Running DPS statistics snapshot.
- SimEngine
- Event loop for a single sim iteration; queue and handler are borrowed for reuse across iterations.
- SimEngine
Refs - Mutable references shared across simulation iterations.
- Telemetry
Accumulator - Accumulates telemetry incrementally across all iterations.
Type Aliasesยง
- Result
- Result of driving a simulation iteration.