recibo 0.3.0

ESC/POS printer driver for Rust
Documentation
use std::fmt;

#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(PartialEq, Debug, Clone)]
pub enum UnderlineMode {
  #[cfg_attr(feature = "serde", serde(rename = "none"))]
  None,
  #[cfg_attr(feature = "serde", serde(rename = "single"))]
  Single,
  #[cfg_attr(feature = "serde", serde(rename = "double"))]
  Double,
}

impl fmt::Display for UnderlineMode {
  fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
    match self {
      UnderlineMode::None => write!(f, "none"),
      UnderlineMode::Single => write!(f, "single"),
      UnderlineMode::Double => write!(f, "double"),
    }
  }
}

#[cfg(test)]
mod tests {

  #[test]
  #[cfg(feature = "serde")]
  fn test_deserialize_from_json() {
    let alignment: super::UnderlineMode = serde_json::from_str("\"single\"").unwrap();

    assert_eq!(alignment, super::UnderlineMode::Single);
  }
}