use crate::{Error, FixedField};
#[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub enum TimeCode {
ActiveContinuouslyIncludingHolidays,
ActiveContinuouslyExcludingHoliday,
ActiveNonContinuously,
ActiveTimesAnnouncedByNOTAM,
ActiveTimesNotSpecified,
}
impl FixedField<'_> for TimeCode {
const LENGTH: usize = 1;
fn from_bytes(bytes: &'_ [u8]) -> Result<Self, Error> {
match bytes[0] {
b'C' => Ok(Self::ActiveContinuouslyIncludingHolidays),
b'H' => Ok(Self::ActiveContinuouslyExcludingHoliday),
b'N' => Ok(Self::ActiveNonContinuously),
b'P' => Ok(Self::ActiveTimesAnnouncedByNOTAM),
b'U' => Ok(Self::ActiveTimesNotSpecified),
byte => Err(crate::Error::InvalidCharacter {
field: "Time Code",
byte,
expected: "C, H, N, P or U",
}),
}
}
}