1#[derive(Debug)]
2pub enum GpsDataByte {
4 MsbPadded(u8),
7
8 LsbPadded(u8),
11
12 Byte(u8),
14}
15
16impl core::fmt::LowerExp for GpsDataByte {
17 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18 match self {
19 Self::MsbPadded(value) => write!(f, "0x{:02}X", value),
20 Self::LsbPadded(value) => write!(f, "0x{:02}X", (value << 2)),
21 Self::Byte(value) => write!(f, "0x{:02}X", value),
22 }
23 }
24}
25
26impl GpsDataByte {
27 pub fn msb_padded(byte: u8) -> Self {
29 Self::MsbPadded(byte & 0x3f)
30 }
31
32 pub fn lsb_padded(byte: u8) -> Self {
34 Self::LsbPadded((byte & 0xfc) >> 2)
35 }
36}