recibo/domain/
underline_mode.rs

1use std::fmt;
2
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4#[derive(PartialEq, Debug, Clone)]
5pub enum UnderlineMode {
6  #[cfg_attr(feature = "serde", serde(rename = "none"))]
7  None,
8  #[cfg_attr(feature = "serde", serde(rename = "single"))]
9  Single,
10  #[cfg_attr(feature = "serde", serde(rename = "double"))]
11  Double,
12}
13
14impl fmt::Display for UnderlineMode {
15  fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16    match self {
17      UnderlineMode::None => write!(f, "none"),
18      UnderlineMode::Single => write!(f, "single"),
19      UnderlineMode::Double => write!(f, "double"),
20    }
21  }
22}
23
24#[cfg(test)]
25mod tests {
26
27  #[test]
28  #[cfg(feature = "serde")]
29  fn test_deserialize_from_json() {
30    let alignment: super::UnderlineMode = serde_json::from_str("\"single\"").unwrap();
31
32    assert_eq!(alignment, super::UnderlineMode::Single);
33  }
34}