StylingInfo

Struct StylingInfo 

Source
pub struct StylingInfo {
    pub font_name: Option<String>,
    pub font_size: Option<u32>,
    pub color: Option<String>,
    pub bold: bool,
    pub italic: bool,
    pub underline: bool,
}
Expand description

Optional styling information for subtitle entries with comprehensive formatting support.

This structure contains visual formatting information that can be applied to subtitle text. Not all formats support all styling options, and some styling may be lost during format conversions.

§Format Support

  • SRT: Limited support (bold, italic, underline via HTML tags)
  • ASS: Full support for all styling options plus advanced features
  • VTT: Good support via CSS-style declarations
  • SUB: No styling support (ignored)

§Color Format

Colors can be specified in various formats:

  • Hex: “#FF0000”, “#ff0000”
  • RGB: “rgb(255, 0, 0)”
  • Named: “red”, “blue”, “white”
  • ASS format: “&H0000FF&” (BGR order)

§Examples

use subx_cli::core::formats::StylingInfo;

// Basic text styling
let basic_style = StylingInfo {
    bold: true,
    italic: false,
    underline: false,
    ..Default::default()
};

// Complete styling with font and color
let full_style = StylingInfo {
    font_name: Some("Arial".to_string()),
    font_size: Some(20),
    color: Some("#FFFFFF".to_string()),
    bold: true,
    italic: false,
    underline: false,
};

assert!(full_style.has_font_styling());
assert!(full_style.has_text_decoration());

Fields§

§font_name: Option<String>

Font family name for the subtitle text.

Common fonts: “Arial”, “Times New Roman”, “Helvetica”, “SimHei” Some formats may fall back to default fonts if not available.

§font_size: Option<u32>

Font size in points or pixels (format-dependent).

Typical ranges: 12-24 for normal subtitles, larger for accessibility. The exact interpretation depends on the target format.

§color: Option<String>

Text color specification.

Supports multiple formats: hex (#FF0000), RGB, named colors. Default is usually white (#FFFFFF) for video subtitles.

§bold: bool

Whether the text should be rendered in bold weight.

§italic: bool

Whether the text should be rendered in italic style.

§underline: bool

Whether the text should have underline decoration.

Implementations§

Source§

impl StylingInfo

Source

pub fn new(bold: bool, italic: bool, underline: bool) -> Self

Create new styling with only text decorations.

§Arguments
  • bold - Apply bold weight
  • italic - Apply italic style
  • underline - Apply underline decoration
§Examples
let style = StylingInfo::new(true, false, false); // Bold only
Source

pub fn has_font_styling(&self) -> bool

Check if any font-related styling is applied.

Returns true if font name, size, or color is specified.

Source

pub fn has_text_decoration(&self) -> bool

Check if any text decoration is applied.

Returns true if bold, italic, or underline is enabled.

Source

pub fn has_any_styling(&self) -> bool

Check if any styling is applied at all.

Returns true if either font styling or text decoration is present.

Source

pub fn normalized_color(&self) -> Option<String>

Convert color to hex format if possible.

Attempts to normalize the color specification to #RRGGBB format. Returns the original color string if conversion is not possible.

Source

pub fn to_css(&self) -> String

Generate CSS-style representation of the styling.

Creates a CSS declaration block that can be used for VTT format or web-based subtitle rendering.

§Returns

CSS string like “font-family: Arial; font-weight: bold; color: #FF0000;”

Trait Implementations§

Source§

impl Clone for StylingInfo

Source§

fn clone(&self) -> StylingInfo

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StylingInfo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for StylingInfo

Source§

fn default() -> StylingInfo

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,