whisker_css/keyword/
border.rs1use core::fmt;
7
8use crate::to_css::ToCss;
9
10#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
13pub enum BorderStyle {
14 None,
16 Hidden,
19 Solid,
21 Dashed,
23 Dotted,
25 Double,
27 Groove,
29 Ridge,
31 Inset,
33 Outset,
35}
36
37impl ToCss for BorderStyle {
38 fn to_css(&self, dest: &mut dyn fmt::Write) -> fmt::Result {
39 dest.write_str(match self {
40 BorderStyle::None => "none",
41 BorderStyle::Hidden => "hidden",
42 BorderStyle::Solid => "solid",
43 BorderStyle::Dashed => "dashed",
44 BorderStyle::Dotted => "dotted",
45 BorderStyle::Double => "double",
46 BorderStyle::Groove => "groove",
47 BorderStyle::Ridge => "ridge",
48 BorderStyle::Inset => "inset",
49 BorderStyle::Outset => "outset",
50 })
51 }
52}
53
54#[cfg(test)]
55mod tests {
56 use super::*;
57
58 #[test]
59 fn all_border_styles() {
60 let cases = [
61 (BorderStyle::None, "none"),
62 (BorderStyle::Hidden, "hidden"),
63 (BorderStyle::Solid, "solid"),
64 (BorderStyle::Dashed, "dashed"),
65 (BorderStyle::Dotted, "dotted"),
66 (BorderStyle::Double, "double"),
67 (BorderStyle::Groove, "groove"),
68 (BorderStyle::Ridge, "ridge"),
69 (BorderStyle::Inset, "inset"),
70 (BorderStyle::Outset, "outset"),
71 ];
72 for (k, expected) in cases {
73 assert_eq!(k.to_css_string(), expected);
74 }
75 }
76}