freya_core/values/
text_shadow.rs

1use freya_engine::prelude::*;
2
3use crate::parsing::{
4    Parse,
5    ParseError,
6};
7
8// Same as shadow, but no inset or spread.
9impl Parse for TextShadow {
10    fn parse(value: &str) -> Result<Self, ParseError> {
11        let mut shadow_values = value.split_ascii_whitespace();
12        Ok(TextShadow {
13            offset: (
14                shadow_values
15                    .next()
16                    .ok_or(ParseError)?
17                    .parse::<f32>()
18                    .map_err(|_| ParseError)?,
19                shadow_values
20                    .next()
21                    .ok_or(ParseError)?
22                    .parse::<f32>()
23                    .map_err(|_| ParseError)?,
24            )
25                .into(),
26            blur_sigma: shadow_values
27                .next()
28                .ok_or(ParseError)?
29                .parse::<f64>()
30                .map_err(|_| ParseError)?
31                / 2.0,
32            color: Color::parse(shadow_values.collect::<Vec<&str>>().join(" ").as_str())
33                .map_err(|_| ParseError)?,
34        })
35    }
36}