Skip to main content

stylex_enums/
css_syntax.rs

1use 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}