use std::collections::HashSet;
use crate::specification::Module;
pub(crate) fn cleanup(module: &mut Module) {
let mut used_record_layouts = HashSet::<String>::new();
for axis_pts in &module.axis_pts {
used_record_layouts.insert(axis_pts.deposit_record.clone());
}
for characteristic in &module.characteristic {
used_record_layouts.insert(characteristic.deposit.clone());
}
for typedef_characteristic in &module.typedef_characteristic {
used_record_layouts.insert(typedef_characteristic.record_layout.clone());
}
for typedef_axis in &module.typedef_axis {
used_record_layouts.insert(typedef_axis.record_layout.clone());
}
if let Some(mod_common) = &module.mod_common
&& let Some(s_rec_layout) = &mod_common.s_rec_layout
{
used_record_layouts.insert(s_rec_layout.name.clone());
}
module
.record_layout
.retain(|rl| used_record_layouts.contains(&rl.name));
}