stylex_enums/
css_syntax.rs1use std::fmt;
2
3use stylex_macros::stylex_panic;
4
5#[derive(Debug, PartialEq, Clone, Hash, Copy)]
6pub enum CSSSyntax {
7 Length,
8 Number,
9 Percentage,
10 LengthPercentage,
11 Color,
12 Image,
13 Url,
14 Integer,
15 Angle,
16 Time,
17 Resolution,
18 TransformFunction,
19 TransformList,
20}
21
22impl fmt::Display for CSSSyntax {
23 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
24 match *self {
25 CSSSyntax::Angle => write!(f, "<angle>"),
26 CSSSyntax::Color => write!(f, "<color>"),
27 CSSSyntax::Image => write!(f, "<image>"),
28 CSSSyntax::Integer => write!(f, "<integer>"),
29 CSSSyntax::Length => write!(f, "<length>"),
30 CSSSyntax::LengthPercentage => write!(f, "<lengthPercentage>"),
31 CSSSyntax::Number => write!(f, "<number>"),
32 CSSSyntax::Percentage => write!(f, "<percentage>"),
33 CSSSyntax::Resolution => write!(f, "<resolution>"),
34 CSSSyntax::Time => write!(f, "<time>"),
35 CSSSyntax::TransformFunction => write!(f, "<transformFunction>"),
36 CSSSyntax::TransformList => write!(f, "<transformList>"),
37 CSSSyntax::Url => write!(f, "<url>"),
38 }
39 }
40}
41
42impl From<String> for CSSSyntax {
43 fn from(value: String) -> Self {
44 match value.as_str() {
45 "<angle>" => CSSSyntax::Angle,
46 "<color>" => CSSSyntax::Color,
47 "<image>" => CSSSyntax::Image,
48 "<integer>" => CSSSyntax::Integer,
49 "<length>" => CSSSyntax::Length,
50 "<lengthPercentage>" => CSSSyntax::LengthPercentage,
51 "<number>" => CSSSyntax::Number,
52 "<percentage>" => CSSSyntax::Percentage,
53 "<resolution>" => CSSSyntax::Resolution,
54 "<time>" => CSSSyntax::Time,
55 "<transformFunction>" => CSSSyntax::TransformFunction,
56 "<transformList>" => CSSSyntax::TransformList,
57 "<url>" => CSSSyntax::Url,
58 _ => stylex_panic!(r#"CSSSyntax "{}" not found"#, value),
59 }
60 }
61}