ptouch_rs/
status_type.rs

1use nom::{IResult, number::complete::u8};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5pub enum StatusType {
6  Ok,
7  TapeDoorOpen,
8  Unknown(u8),
9}
10
11impl From<u8> for StatusType {
12  fn from(value: u8) -> Self {
13    match value {
14      0x00 => StatusType::Ok,
15      0x02 => StatusType::TapeDoorOpen,
16      v => StatusType::Unknown(v),
17    }
18  }
19}
20
21impl StatusType {
22  pub fn parse(input: &[u8]) -> IResult<&[u8], Self> {
23    let (input, color) = u8(input)?;
24
25    Ok((input, color.into()))
26  }
27}