use crate::testing::specs::csp::Event;
#[derive(Debug, Clone, PartialEq, Eq, crate::der::Sequence)]
pub struct TimingViolation {
pub event: Event,
pub wcet_ns: u64,
pub observed_ns: u64,
pub seq: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, crate::der::Sequence)]
pub struct DeadlineMiss {
pub start_event: Event,
pub end_event: Event,
pub deadline_ns: u64,
pub observed_ns: u64,
pub start_seq: u32,
pub end_seq: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, crate::der::Sequence)]
pub struct JitterViolation {
pub event: Event,
pub max_jitter_ns: u64,
pub observed_jitter_ns: u64,
pub seqs: Vec<u32>,
}
#[derive(Debug, Clone, PartialEq, Eq, crate::der::Sequence)]
pub struct TimingSlackViolation {
pub start_event: Event,
pub end_event: Event,
pub required_slack_ns: u64,
pub observed_slack_ns: u64,
pub deadline_ns: u64,
pub observed_latency_ns: u64,
pub start_seq: u32,
pub end_seq: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, crate::der::Sequence)]
pub struct PathWcetViolation {
pub path: Vec<Event>,
pub max_path_duration_ns: u64,
pub observed_path_duration_ns: u64,
pub seqs: Vec<u32>,
}