use core::fmt;
use crate::to_css::ToCss;
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub enum BorderStyle {
None,
Hidden,
Solid,
Dashed,
Dotted,
Double,
Groove,
Ridge,
Inset,
Outset,
}
impl ToCss for BorderStyle {
fn to_css(&self, dest: &mut dyn fmt::Write) -> fmt::Result {
dest.write_str(match self {
BorderStyle::None => "none",
BorderStyle::Hidden => "hidden",
BorderStyle::Solid => "solid",
BorderStyle::Dashed => "dashed",
BorderStyle::Dotted => "dotted",
BorderStyle::Double => "double",
BorderStyle::Groove => "groove",
BorderStyle::Ridge => "ridge",
BorderStyle::Inset => "inset",
BorderStyle::Outset => "outset",
})
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn all_border_styles() {
let cases = [
(BorderStyle::None, "none"),
(BorderStyle::Hidden, "hidden"),
(BorderStyle::Solid, "solid"),
(BorderStyle::Dashed, "dashed"),
(BorderStyle::Dotted, "dotted"),
(BorderStyle::Double, "double"),
(BorderStyle::Groove, "groove"),
(BorderStyle::Ridge, "ridge"),
(BorderStyle::Inset, "inset"),
(BorderStyle::Outset, "outset"),
];
for (k, expected) in cases {
assert_eq!(k.to_css_string(), expected);
}
}
}