use crate::interface::{layer::Layer, parser::parser_rrc::RRCInfos};
use core::fmt::Debug;
#[derive(Debug)]
pub struct Data {
pub events: Vec<Trace>,
pub current_index: usize,
}
impl Data {
pub fn get_current_trace(&self) -> Option<&Trace> {
return self.events.get(self.current_index);
}
pub fn is_different_index(&self, index: usize) -> bool {
if index == 0 {
return true;
}
self.current_index != index
}
pub fn clear(&mut self) {
self.events.clear();
self.current_index = 0;
}
}
impl Default for Data {
fn default() -> Self {
let default_data_size = 2048;
Self {
events: Vec::with_capacity(default_data_size),
current_index: 0,
}
}
}
#[derive(Debug, Clone)]
pub struct Trace {
pub timestamp: u64,
pub layer: Layer,
pub additional_infos: AdditionalInfos,
pub hexa: Vec<u8>,
pub text: Option<Vec<String>>,
}
#[derive(Debug, Clone)]
pub enum AdditionalInfos {
RRCInfos(RRCInfos),
}