pub enum ScriptVersion {
SsaV4,
AssV4,
AssV4Plus,
}
Expand description
Supported ASS script versions for compatibility and feature detection.
ASS scripts can declare different versions that affect parsing behavior and available features. This enum helps determine which parsing mode to use and which features are available.
§Examples
use ass_core::ScriptVersion;
// Parse from header
let version = ScriptVersion::from_header("v4.00+").unwrap();
assert_eq!(version, ScriptVersion::AssV4);
// Check feature support
assert!(!ScriptVersion::SsaV4.supports_extensions());
assert!(ScriptVersion::AssV4Plus.supports_extensions());
Variants§
SsaV4
SSA v4.00 (SubStation
Alpha legacy format).
Provides compatibility with legacy SSA files. Limited feature set compared to modern ASS versions.
AssV4
ASS v4.00+ (Advanced SubStation
Alpha standard).
The most common format used by modern subtitle tools. Supports all standard ASS features and tags.
AssV4Plus
ASS v4.00+ with extensions (libass 0.17.4+ compatibility).
Extended format supporting newer features like \kt
karaoke tags,
Unicode line wrapping, and other libass extensions.
Implementations§
Source§impl ScriptVersion
impl ScriptVersion
Sourcepub fn from_header(header: &str) -> Option<Self>
pub fn from_header(header: &str) -> Option<Self>
Parse script version from a ScriptType
header value.
Converts header strings commonly found in [Script Info]
sections
to the appropriate script version enum. Handles various formats
including extended versions.
§Arguments
header
- The header value string (usually fromScriptType
field)
§Returns
Returns Some(ScriptVersion)
if the header is recognized, or None
if the version string is invalid or unsupported.
§Examples
use ass_core::ScriptVersion;
assert_eq!(ScriptVersion::from_header("v4.00"), Some(ScriptVersion::SsaV4));
assert_eq!(ScriptVersion::from_header("v4.00+"), Some(ScriptVersion::AssV4));
assert_eq!(ScriptVersion::from_header("v4.00++"), Some(ScriptVersion::AssV4Plus));
assert_eq!(ScriptVersion::from_header("invalid"), None);
Sourcepub const fn supports_extensions(self) -> bool
pub const fn supports_extensions(self) -> bool
Check if the script version supports modern ASS extensions.
Modern ASS extensions include features like:
\kt
karaoke timing tags- Unicode line wrapping
- Extended color formats
- Advanced animation features
Only AssV4Plus
currently supports these extensions, as they
require libass 0.17.4+ compatibility.
§Returns
Returns true
if the version supports extensions, false
otherwise.
§Examples
use ass_core::ScriptVersion;
assert!(!ScriptVersion::SsaV4.supports_extensions());
assert!(!ScriptVersion::AssV4.supports_extensions());
assert!(ScriptVersion::AssV4Plus.supports_extensions());
Trait Implementations§
Source§impl Clone for ScriptVersion
impl Clone for ScriptVersion
Source§fn clone(&self) -> ScriptVersion
fn clone(&self) -> ScriptVersion
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more