pub struct EncodingRule;Available on crate feature
analysis only.Expand description
Rule for detecting encoding and character issues in subtitle scripts
Analyzes scripts for problematic characters that may cause encoding issues, display problems, or compatibility issues across different subtitle renderers and media players.
§Encoding Checks
- Non-printable characters: Detects control characters that shouldn’t appear in text
- Invalid UTF-8 sequences: Identifies corrupted character data
- Suspicious character patterns: Warns about potentially problematic sequences
§Performance
- Time complexity: O(n * m) for n events and m characters per event
- Memory: O(1) additional space
- Target: <2ms for typical scripts with 1000 events
§Example
use ass_core::analysis::linting::rules::encoding::EncodingRule;
use ass_core::analysis::linting::LintRule;
use ass_core::{Script, ScriptAnalysis};
let script_text = format!("[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\nDialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Text with{}invalid character", '\x00');
let script = Script::parse(&script_text)?;
let rule = EncodingRule;
let analysis = ScriptAnalysis::analyze(&script).unwrap();
let issues = rule.check_script(&analysis);
assert!(!issues.is_empty()); // Should detect the control characterTrait Implementations§
Source§impl LintRule for EncodingRule
impl LintRule for EncodingRule
Source§fn description(&self) -> &'static str
fn description(&self) -> &'static str
Rule description.
Source§fn default_severity(&self) -> IssueSeverity
fn default_severity(&self) -> IssueSeverity
Default severity level.
Source§fn category(&self) -> IssueCategory
fn category(&self) -> IssueCategory
Issue category this rule checks for.
Source§fn check_script(&self, analysis: &ScriptAnalysis<'_>) -> Vec<LintIssue>
fn check_script(&self, analysis: &ScriptAnalysis<'_>) -> Vec<LintIssue>
Check script and return issues.
Auto Trait Implementations§
impl Freeze for EncodingRule
impl RefUnwindSafe for EncodingRule
impl Send for EncodingRule
impl Sync for EncodingRule
impl Unpin for EncodingRule
impl UnwindSafe for EncodingRule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more