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}