use super::{
data_words::{ib_data_word_id_to_lane, ob_data_word_id_to_lane},
Layer,
};
#[derive(Default)]
pub struct LaneDataFrame {
lane_id: u8,
lane_data: Vec<u8>,
}
impl LaneDataFrame {
pub fn new(lane_id: u8, lane_data: Vec<u8>) -> Self {
Self { lane_id, lane_data }
}
pub fn id(&self) -> u8 {
self.lane_id
}
pub fn data(&self) -> &[u8] {
&self.lane_data
}
pub fn append_data(&mut self, data: &[u8]) {
self.lane_data.extend_from_slice(data);
}
pub fn lane_number(&self, from_barrel: Layer) -> u8 {
match from_barrel {
Layer::Inner => ib_data_word_id_to_lane(self.lane_id),
Layer::Middle | Layer::Outer => ob_data_word_id_to_lane(self.lane_id),
}
}
}