in src/storage.rs [901:950]
fn update_import_freshness(
audits_file: &mut AuditsFile,
existing_audits_file: &AuditsFile,
mut on_changed_criteria_description: impl FnMut(CriteriaStr<'_>, &str, &str),
) {
// Compare the new criteria descriptions with existing criteria
// descriptions. If the description already exists, notify our caller.
for (criteria_name, old_entry) in &existing_audits_file.criteria {
if let Some(new_entry) = audits_file.criteria.get(criteria_name) {
let old_desc = old_entry.description.as_ref().unwrap();
let new_desc = new_entry.description.as_ref().unwrap();
if old_desc != new_desc {
on_changed_criteria_description(criteria_name, old_desc, new_desc);
}
}
}
// Compare the new audits with existing audits. If an audit already
// existed in the existing audits file, mark it as non-fresh.
for (package, existing_audits) in &existing_audits_file.audits {
let new_audits = audits_file
.audits
.get_mut(package)
.map(|v| &mut v[..])
.unwrap_or(&mut []);
for existing_audit in existing_audits {
for new_audit in &mut *new_audits {
if new_audit.is_fresh_import && new_audit.same_audit_as(existing_audit) {
new_audit.is_fresh_import = false;
break;
}
}
}
}
for (package, existing_audits) in &existing_audits_file.wildcard_audits {
let new_audits = audits_file
.wildcard_audits
.get_mut(package)
.map(|v| &mut v[..])
.unwrap_or(&mut []);
for existing_audit in existing_audits {
for new_audit in &mut *new_audits {
if new_audit.is_fresh_import && new_audit.same_audit_as(existing_audit) {
new_audit.is_fresh_import = false;
break;
}
}
}
}
}