use crate::core::grammar::GrammarState;
use crate::core::heuristics::EngineReasonCode;
#[derive(Debug, Clone, Copy)]
pub struct Episode {
pub unit: u16,
pub start_cycle: u32,
pub end_cycle: u32,
pub peak_state: GrammarState,
pub reason_code: EngineReasonCode,
pub max_drift: f64,
pub max_slew: f64,
pub duration_cycles: u32,
pub trigger_channel: u8,
}
impl Episode {
#[must_use]
pub fn is_reviewable(&self) -> bool {
self.peak_state.severity() >= GrammarState::Boundary.severity()
}
#[must_use]
pub fn is_escalation(&self) -> bool {
self.peak_state == GrammarState::Violation
}
}