pub struct SrtFormat;Expand description
SubRip (.srt) format parsing and serialization.
Trait Implementations§
Source§impl SubtitleFormat for SrtFormat
impl SubtitleFormat for SrtFormat
Source§fn parse(&self, content: &str) -> Result<Subtitle>
fn parse(&self, content: &str) -> Result<Subtitle>
Parse SRT content into a Subtitle.
§Malformed-input dispositions
Per the subtitle-parser-hardening spec matrix, this parser handles
malformed inputs as follows:
- Empty input → returns
crate::error::SubXError::SubtitleFormat. - UTF-8 BOM prefix → consumed as a defensive layer at the start of
parse(additive to the encoding-layerformats::encoding::converter::skip_bom); BOM-only content reduces to empty input and is rejected. - Per-cue body exceeding
MAX_CUE_BYTES(1 MiB) → returnscrate::error::SubXError::SubtitleFormat. The cap is enforced on raw pre-normalization bytes, so\r\npadding cannot bypass the limit by shrinking under line-ending normalization. - CRLF (
\r\n), bare-CR (\r), or mixed line endings → input is normalized to LF before block splitting; CRLF and mixed inputs parse to the same entry count and text content as their LF counterpart. - Block with non-numeric sequence index → skip-and-continue with
debug!log. - Block with negative timestamp on the timing line →
skip-and-continue with
debug!log. - Block whose timing line does not match the SRT regex → silently skipped (existing tolerated behavior).
- Out-of-order cues by start time → preserved verbatim in
entries; no implicit sort.
Source§fn serialize(&self, subtitle: &Subtitle) -> Result<String>
fn serialize(&self, subtitle: &Subtitle) -> Result<String>
Serialize a
Subtitle structure into format-specific text representation. Read moreSource§fn detect(&self, content: &str) -> bool
fn detect(&self, content: &str) -> bool
Detect whether the provided content matches this subtitle format. Read more
Source§fn format_name(&self) -> &'static str
fn format_name(&self) -> &'static str
Returns the human-readable name of this subtitle format. Read more
Source§fn file_extensions(&self) -> &'static [&'static str]
fn file_extensions(&self) -> &'static [&'static str]
Returns the list of supported file extensions for this format. Read more
Source§fn supports_styling(&self) -> bool
fn supports_styling(&self) -> bool
Check if this format supports advanced styling features. Read more
Source§fn uses_frame_timing(&self) -> bool
fn uses_frame_timing(&self) -> bool
Check if this format uses frame-based timing. Read more
Auto Trait Implementations§
impl Freeze for SrtFormat
impl RefUnwindSafe for SrtFormat
impl Send for SrtFormat
impl Sync for SrtFormat
impl Unpin for SrtFormat
impl UnsafeUnpin for SrtFormat
impl UnwindSafe for SrtFormat
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