use display_types::cea861::hdmi_forum::HdmiForumFrl;
#[cfg(feature = "alloc")]
use crate::training::TrainingConfig;
use crate::types::{FfeLevels, LtpReq};
#[cfg(feature = "alloc")]
use alloc::vec::Vec;
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum TrainingEvent {
RateConfigured {
rate: HdmiForumFrl,
ffe_levels: FfeLevels,
},
FltReadyReceived {
after_iterations: u32,
},
FltReadyTimeout {
iterations_elapsed: u32,
},
FrlStartReceived {
after_iterations: u32,
},
FrlStartTimeout {
iterations_elapsed: u32,
},
LtpPatternRequested {
pattern: LtpReq,
},
AllLanesSatisfied {
after_iterations: u32,
},
LtpLoopTimeout {
iterations_elapsed: u32,
},
}
#[cfg(feature = "alloc")]
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TrainingTrace {
pub rate: HdmiForumFrl,
pub config: TrainingConfig,
pub events: Vec<TrainingEvent>,
}