use crate::{Error, FixedField};
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub enum Level {
AllAltitudes,
HighLevelAirwaysAltitudes,
LowLevelAirwaysAltitudes,
}
impl FixedField<'_> for Level {
const LENGTH: usize = 1;
fn from_bytes(bytes: &'_ [u8]) -> Result<Self, Error> {
match bytes[0] {
b'B' => Ok(Self::AllAltitudes),
b'H' => Ok(Self::HighLevelAirwaysAltitudes),
b'L' => Ok(Self::LowLevelAirwaysAltitudes),
byte => Err(Error::InvalidCharacter {
field: "Level",
byte,
expected: "B, H or L",
}),
}
}
}