use cssparser::Parser;
use crate::{
layout::style::{ColorInput, CssToken, FromCss, MakeComputed, ParseResult, properties::Length},
rendering::Sizing,
};
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct TextStroke {
pub width: Length<false>,
pub color: Option<ColorInput>,
}
impl<'i> FromCss<'i> for TextStroke {
fn from_css(input: &mut Parser<'i, '_>) -> ParseResult<'i, Self> {
let width = Length::from_css(input)?;
let color = input.try_parse(ColorInput::from_css).ok();
Ok(TextStroke { width, color })
}
fn valid_tokens() -> &'static [CssToken] {
&[CssToken::Token("length"), CssToken::Token("color")]
}
}
impl MakeComputed for TextStroke {
fn make_computed(&mut self, sizing: &Sizing) {
self.width.make_computed(sizing);
}
}