use sim_kernel::Expr;
use sim_lib_topology::Graph;
use crate::monitor::monitor_view;
use crate::run::{RunEvent, RunState};
pub fn replay(graph: &Graph, events: &[RunEvent]) -> Vec<Expr> {
let mut run = RunState::new();
let mut frames = Vec::with_capacity(events.len() + 1);
frames.push(monitor_view(graph, &run));
for event in events {
run.apply_event(event.clone());
frames.push(monitor_view(graph, &run));
}
frames
}
pub fn replay_final(events: &[RunEvent]) -> RunState {
let mut run = RunState::new();
for event in events {
run.apply_event(event.clone());
}
run
}