diff --git a/src/reports/mod.rs b/src/reports/mod.rs new file mode 100644 index 0000000..24e32ea --- /dev/null +++ b/src/reports/mod.rs @@ -0,0 +1 @@ +pub mod parameters; diff --git a/src/reports/parameters.rs b/src/reports/parameters.rs new file mode 100644 index 0000000..5bc3d3c --- /dev/null +++ b/src/reports/parameters.rs @@ -0,0 +1,34 @@ +use std::path::PathBuf; + +use serde::{Deserialize, Serialize}; + +use crate::tracer::TracerReport; + +#[derive(Serialize, Deserialize)] +pub struct ParametersReport { + pub files: Vec, +} + +#[derive(Serialize, Deserialize)] +pub struct ParametersReportFile { + source_name: PathBuf, + used_names: Vec, +} + +pub fn run(report: &TracerReport) -> anyhow::Result { + Ok(ParametersReport { + files: report + .files + .files + .iter() + .filter_map(|rf| { + (!rf.input_names.is_empty() && !rf.output_names.is_empty()).then(|| { + ParametersReportFile { + source_name: rf.input_names.iter().next().cloned().unwrap(), + used_names: rf.output_names.iter().cloned().collect(), + } + }) + }) + .collect(), + }) +}