pub struct DebugSnapshot {
pub status: &'static str,
pub current_location: Option<String>,
pub position: Option<DebugPosition>,
pub turn_index: u32,
pub globals: Vec<DebugGlobal>,
pub call_stack: Vec<DebugFrame>,
pub visit_counts: Vec<DebugVisit>,
pub visit_ids: Vec<DebugVisitId>,
pub pending_choices: Vec<DebugChoice>,
pub rng: DebugRng,
}Expand description
A structured, read-only snapshot of the runtime’s current state.
Fields§
§status: &'static strExecution status: active / waiting_for_choice / done / ended.
current_location: Option<String>Nearest named knot/stitch the cursor is currently in, if resolvable.
position: Option<DebugPosition>Precise execution position for the active flow: the innermost call
frame’s current (container_idx, offset). None when the call
stack has no frame with an open container (e.g. Ended/Done with
nothing left to run) — mirrors call_stack[0].position when the
call stack is non-empty. Also None whenever the innermost frame is
a CallFrameType::External frame: those are pushed with an empty
container_stack (there is no bytecode position “inside” a
deferred external call), and an external frame stays the top frame
for as long as has_pending_external() is true — so a flow parked
on a deferred external (StepOutcome::AwaitingExternal, status
active, nothing exhausted) reports position: None here too. The
call site that invoked the external lives on that frame’s own
return_address, or equivalently on the position of the caller
frame just below it.
turn_index: u32Current turn index.
globals: Vec<DebugGlobal>Global variables and their current values (display strings).
call_stack: Vec<DebugFrame>Active call frames, innermost (current) first.
visit_counts: Vec<DebugVisit>Per-knot/stitch visit counts, sorted by path.
visit_ids: Vec<DebugVisitId>EVERY container visit count keyed by DefinitionId display string
(W11/#3304): unlike Self::visit_counts — which resolves through
named paths and silently drops anonymous containers — this carries
the anonymous choice/gather bodies too, so a consumer can join
against the HIR overlay projection’s def_id (#3234’s identity).
Sorted by id for determinism.
pending_choices: Vec<DebugChoice>Choices currently offered to the player.
rng: DebugRngStory RNG state.