1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#[derive(Debug, Clone, Copy)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Flags {
    None,
    Ack(u8),
}
impl Flags {
    pub(crate) fn from_u8(flags: u8) -> Flags {
        match flags {
            0 => Self::None,
            1..=4 => Self::Ack(flags - 1),
            _ => Self::None,
        }
    }

    pub(crate) fn as_u8(&self) -> u8 {
        match self {
            Self::None => 0,
            Self::Ack(retries) => *retries + 1,
        }
    }
}