use crate::words::its::status_words::util::is_lane_active;
#[derive(Debug, Default, Clone, Copy)]
pub struct IbDataWordValidator;
impl IbDataWordValidator {
pub fn check(ib_data_word: &[u8], ihw_active_lanes: u32) -> Result<(), Box<str>> {
let lane_id = ib_data_word[9] & 0x1F;
if is_lane_active(lane_id, ihw_active_lanes) {
Ok(())
} else {
Err(format!("[E72] IB lane {lane_id} is not active according to IHW active_lanes: {ihw_active_lanes:#X}.").into())
}
}
}