pub struct NegativeDurationRule;Available on crate feature
analysis only.Expand description
Rule for detecting events with negative or zero duration
Events with start time >= end time are invalid and will not display properly in most subtitle renderers. This rule catches timing errors that could result from manual editing mistakes or conversion issues.
§Performance
- Time complexity: O(n) for n events
- Memory: O(1) additional space
- Target: <0.5ms for 1000 events
§Example
use ass_core::analysis::linting::rules::negative_duration::NegativeDurationRule;
use ass_core::analysis::linting::LintRule;
use ass_core::{Script, ScriptAnalysis};
let script = Script::parse(r#"
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:05.00,0:00:02.00,Default,,0,0,0,,Invalid event
"#)?;
let analysis = ScriptAnalysis::analyze(&script)?;
let rule = NegativeDurationRule;
let issues = rule.check_script(&analysis);
assert!(!issues.is_empty()); // Should detect the negative durationTrait Implementations§
Source§impl LintRule for NegativeDurationRule
impl LintRule for NegativeDurationRule
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 NegativeDurationRule
impl RefUnwindSafe for NegativeDurationRule
impl Send for NegativeDurationRule
impl Sync for NegativeDurationRule
impl Unpin for NegativeDurationRule
impl UnwindSafe for NegativeDurationRule
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