#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Debug, Default)]
#[repr(u8)]
pub enum GrammarState {
#[default]
Admissible = 0,
Boundary = 1,
Violation = 2,
Recovery = 3,
}
#[derive(Copy, Clone, Eq, PartialEq, Debug, Default)]
#[repr(u8)]
pub enum ReasonCode {
#[default]
Admissible = 0,
BoundaryApproach = 1,
SustainedOutwardDrift = 2,
AbruptSlewViolation = 3,
RecurrentBoundaryGrazing = 4,
EnvelopeViolation = 5,
DriftWithRecovery = 6,
SingleCrossing = 7,
}
impl ReasonCode {
#[must_use]
pub const fn severity(self) -> u8 {
match self {
Self::Admissible => 0,
Self::SingleCrossing => 1,
Self::BoundaryApproach => 2,
Self::RecurrentBoundaryGrazing => 3,
Self::DriftWithRecovery => 4,
Self::AbruptSlewViolation => 5,
Self::SustainedOutwardDrift => 6,
Self::EnvelopeViolation => 7,
}
}
}