pub enum OutputPart {
Text(String),
LineRef {
container_idx: u32,
line_idx: u16,
slots: Vec<Value>,
flags: LineFlags,
},
ValueRef(Value),
Newline,
Spring,
Glue,
Checkpoint,
Tag(String),
}Expand description
A part of accumulated output.
Output parts are structural references that resolve at read time against the current line tables and plural resolver. This enables locale-hot-swap: the same transcript can be re-rendered in different languages without re-executing the story.
Variants§
Text(String)
Eagerly-resolved text. Not produced by the VM in production — used in tests and available for external transcript construction.
LineRef
Deferred line reference — resolved at read time against the current line tables and plural resolver.
ValueRef(Value)
Deferred value — stringified at read time.
Newline
Spring
Word break — renders as a single space between content parts.
Glue
Checkpoint
Marks the start of a captured region (string eval, tag, or function call).
Tag(String)
A tag associated with the current line of output.
Implementations§
Source§impl OutputPart
impl OutputPart
Sourcepub fn resolve(
&self,
program: &Program,
line_tables: &[Vec<LineEntry>],
resolver: Option<&dyn PluralResolver>,
) -> String
pub fn resolve( &self, program: &Program, line_tables: &[Vec<LineEntry>], resolver: Option<&dyn PluralResolver>, ) -> String
Resolve this output part to its text representation.
Text parts pass through. LineRef and ValueRef are resolved
using the provided program, line tables, and plural resolver.
Structural parts (Newline, Spring, Glue, Checkpoint, Tag)
resolve to empty string — they are handled by the resolution pipeline.
Trait Implementations§
Source§impl Clone for OutputPart
impl Clone for OutputPart
Source§fn clone(&self) -> OutputPart
fn clone(&self) -> OutputPart
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more