diff --git a/src/reg/registry/a2l_reader.rs b/src/reg/registry/a2l_reader.rs new file mode 100644 index 0000000..4104301 --- /dev/null +++ b/src/reg/registry/a2l_reader.rs @@ -0,0 +1,37 @@ +//----------------------------------------------------------------------------- +// Module a2l_reader +// Simplified A2L reader for integration testing +// Uses a2lfile crate to load A2L file + +#![allow(dead_code)] + +#[allow(unused_imports)] +use log::{debug, error, info, trace, warn}; + +use a2lfile::A2lError; + +pub fn a2l_load(filename: &str) -> Result { + trace!("Load A2L file {}", filename); + let input_filename = &std::ffi::OsString::from(filename); + let mut logmsgs = Vec::::new(); + let res = a2lfile::load(input_filename, None, &mut logmsgs, true); + for log_msg in logmsgs { + warn!("A2l Loader: {}", log_msg); + } + match res { + Ok(a2l_file) => { + // Perform a consistency check + let mut logmsgs = Vec::::new(); + a2l_file.check(&mut logmsgs); + for log_msg in logmsgs { + warn!("A2l Checker: {}", log_msg); + } + Ok(a2l_file) + } + + Err(e) => { + error!("a2lfile::load failed: {:?}", e); + Err(e) + } + } +}