tramex_tools/interface/parser/
parser_basic.rs1use super::ParsingError;
3use super::hex_extractor::extract_binary_from_lines;
4use crate::data::{AdditionalInfos, Trace};
5use crate::interface::association::TraceRelation;
6use crate::interface::layer::Layer;
7
8pub struct BasicParser;
11
12impl BasicParser {
13 pub fn parse_with_layer(lines: &[String], layer: Layer) -> Result<Trace, ParsingError> {
17 if lines.is_empty() {
18 return Err(ParsingError::new(format!("{:?} parser received empty lines", layer), 0));
19 }
20
21 let text = lines.to_vec();
22 let binary = extract_binary_from_lines(lines);
23
24 let timestamp = if let Some(first_line) = lines.first() {
26 super::parse_timestamp(first_line)?
27 } else {
28 0
29 };
30
31 let trace = Trace {
32 timestamp,
33 layer,
34 additional_infos: AdditionalInfos::None,
35 text: Some(text),
36 binary,
37 relation: TraceRelation::default(),
38 };
39 Ok(trace)
40 }
41}