Expand description
ASS script parser module
Provides zero-copy parsing of ASS subtitle scripts with lifetime-generic AST nodes. Supports full ASS v4+, SSA v4 compatibility, and libass 0.17.4+ extensions.
§Performance
- Target: <5ms parsing for typical 1KB scripts
- Memory: ~1.1x input size via zero-copy spans
- Incremental updates: <2ms for single-event changes
§Example
use ass_core::parser::Script;
use ass_core::CoreError;
let script_text = r#"
[Script Info]
Title: Example
ScriptType: v4.00+
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Hello World!
"#;
let script = Script::parse(script_text)?;
assert_eq!(script.sections().len(), 2);Re-exports§
pub use ast::Event;pub use ast::ScriptInfo;pub use ast::Section;pub use ast::SectionType;pub use ast::Style;pub use errors::IssueCategory;pub use errors::IssueSeverity;pub use errors::ParseError;pub use errors::ParseIssue;pub use errors::ParseResult;pub use script::Script;pub use script::calculate_delta;streampub use script::ScriptDelta;streampub use script::ScriptDeltaOwned;streampub use streaming::build_modified_source;stream
Modules§
- ast
- AST (Abstract Syntax Tree) definitions for ASS scripts
- binary_
data - Binary data parsing for
[Fonts]and[Graphics]sections - errors
- Parser error types for ASS script parsing
- incremental
- Incremental parsing utilities for efficient text updates
- main
- Main parser coordination and dispatch logic
- position_
tracker - Position tracking utilities for incremental parsing
- script
- ASS script container with zero-copy lifetime-generic design
- sections
- Section-specific parsers for ASS script components.
- streaming
stream - Streaming and incremental parsing for ASS scripts