pub struct Runner<S: VariableStorage> { /* private fields */ }Expand description
Drives execution of a compiled Program, yielding DialogueEvents one at a time.
§Pull model
The host calls Runner::next_event in a loop until it returns Ok(None) (dialogue
ended) or until it receives a DialogueEvent::Options, at which point it must call
Runner::select_option before continuing.
Implementations§
Source§impl<S: VariableStorage> Runner<S>
impl<S: VariableStorage> Runner<S>
Sourcepub const fn program(&self) -> &Program
pub const fn program(&self) -> &Program
Returns read-only access to the compiled program (node titles, declarations, etc.).
Sourcepub const fn phase(&self) -> RunnerPhase
pub const fn phase(&self) -> RunnerPhase
Returns the runner’s current phase for UI or protocol guards.
Sourcepub fn new(program: Program, storage: S) -> Self
pub fn new(program: Program, storage: S) -> Self
Creates a new runner for the given program and variable storage.
Sourcepub fn start(&mut self, node: &str) -> Result<()>
pub fn start(&mut self, node: &str) -> Result<()>
Starts execution at the given node.
Clears any queued events and abandons an in-flight choice so a new conversation
cannot inherit stale DialogueEvent::DialogueComplete or option state from a
prior Runner::start.
§Errors
Returns DialogueError::UnknownNode if the title does not exist in the program.
Sourcepub fn next_event(&mut self) -> Result<Option<DialogueEvent>>
pub fn next_event(&mut self) -> Result<Option<DialogueEvent>>
Returns the next event, or Ok(None) when dialogue is finished.
§Errors
Returns a DialogueError on runtime failures.
Sourcepub fn select_option(&mut self, index: usize) -> Result<()>
pub fn select_option(&mut self, index: usize) -> Result<()>
Selects an option by index after receiving DialogueEvent::Options.
§Errors
Returns DialogueError::ProtocolViolation if called when not awaiting an option
selection, or if index is out of range.
Sourcepub const fn storage_mut(&mut self) -> &mut S
pub const fn storage_mut(&mut self) -> &mut S
Returns a mutable reference to the variable storage.
Sourcepub const fn library_mut(&mut self) -> &mut FunctionLibrary
pub const fn library_mut(&mut self) -> &mut FunctionLibrary
Returns a mutable reference to the function library (for registering host functions).
Sourcepub fn set_saliency(&mut self, strategy: impl SaliencyStrategy)
pub fn set_saliency(&mut self, strategy: impl SaliencyStrategy)
Replaces the saliency strategy used for line and node group selection.
Sourcepub fn set_provider(&mut self, provider: impl LineProvider)
pub fn set_provider(&mut self, provider: impl LineProvider)
Sets the line provider used for localisation lookup.