From f967d698efd44473a9285e02d0109f3bb0641622 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 12 Aug 2026 07:48:21 +0000 Subject: Format native builder and satisfy clippy --- src/compare.rs | 105 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 81 insertions(+), 24 deletions(-) (limited to 'src/compare.rs') diff --git a/src/compare.rs b/src/compare.rs index 8b59c1c..3382d95 100644 --- a/src/compare.rs +++ b/src/compare.rs @@ -50,11 +50,21 @@ impl ComparisonReport { let mut output = String::new(); for difference in &self.differences { match difference { - SemanticDifference::Package { name, change } => writeln!(output, "{} package {name}", change.verb()), - SemanticDifference::File { path, change } => writeln!(output, "{} file {path}", change.verb()), - SemanticDifference::Initrd { change } => writeln!(output, "{} initrd", change.verb()), - SemanticDifference::Service { name, change } => writeln!(output, "{} service {name}", change.verb()), - SemanticDifference::ArchiveMember { path, change } => writeln!(output, "{} archive member {path}", change.verb()), + SemanticDifference::Package { name, change } => { + writeln!(output, "{} package {name}", change.verb()) + } + SemanticDifference::File { path, change } => { + writeln!(output, "{} file {path}", change.verb()) + } + SemanticDifference::Initrd { change } => { + writeln!(output, "{} initrd", change.verb()) + } + SemanticDifference::Service { name, change } => { + writeln!(output, "{} service {name}", change.verb()) + } + SemanticDifference::ArchiveMember { path, change } => { + writeln!(output, "{} archive member {path}", change.verb()) + } } .expect("writing to String cannot fail"); } @@ -64,26 +74,60 @@ impl ComparisonReport { pub fn compare(left: &ArtifactManifest, right: &ArtifactManifest) -> ComparisonReport { let mut differences = Vec::new(); - compare_records(&left.packages, &right.packages, |record| &record.name, |name, change| { - SemanticDifference::Package { name: name.to_owned(), change } - }, &mut differences); - compare_records(&left.files, &right.files, |record| &record.path, |path, change| { - SemanticDifference::File { path: path.to_owned(), change } - }, &mut differences); + compare_records( + &left.packages, + &right.packages, + |record| &record.name, + |name, change| SemanticDifference::Package { + name: name.to_owned(), + change, + }, + &mut differences, + ); + compare_records( + &left.files, + &right.files, + |record| &record.path, + |path, change| SemanticDifference::File { + path: path.to_owned(), + change, + }, + &mut differences, + ); match (&left.initrd, &right.initrd) { - (None, Some(_)) => differences.push(SemanticDifference::Initrd { change: Change::Added }), - (Some(_), None) => differences.push(SemanticDifference::Initrd { change: Change::Removed }), + (None, Some(_)) => differences.push(SemanticDifference::Initrd { + change: Change::Added, + }), + (Some(_), None) => differences.push(SemanticDifference::Initrd { + change: Change::Removed, + }), (Some(left), Some(right)) if left != right => { - differences.push(SemanticDifference::Initrd { change: Change::Changed }); + differences.push(SemanticDifference::Initrd { + change: Change::Changed, + }); } _ => {} } - compare_records(&left.services, &right.services, |record| &record.name, |name, change| { - SemanticDifference::Service { name: name.to_owned(), change } - }, &mut differences); - compare_records(&left.archive_members, &right.archive_members, |record| &record.path, |path, change| { - SemanticDifference::ArchiveMember { path: path.to_owned(), change } - }, &mut differences); + compare_records( + &left.services, + &right.services, + |record| &record.name, + |name, change| SemanticDifference::Service { + name: name.to_owned(), + change, + }, + &mut differences, + ); + compare_records( + &left.archive_members, + &right.archive_members, + |record| &record.path, + |path, change| SemanticDifference::ArchiveMember { + path: path.to_owned(), + change, + }, + &mut differences, + ); differences.sort(); ComparisonReport { differences } } @@ -95,13 +139,26 @@ fn compare_records( difference: impl Fn(&str, Change) -> SemanticDifference, output: &mut Vec, ) { - let left = left.iter().map(|record| (key(record), record)).collect::>(); - let right = right.iter().map(|record| (key(record), record)).collect::>(); - for name in left.keys().chain(right.keys()).copied().collect::>() { + let left = left + .iter() + .map(|record| (key(record), record)) + .collect::>(); + let right = right + .iter() + .map(|record| (key(record), record)) + .collect::>(); + for name in left + .keys() + .chain(right.keys()) + .copied() + .collect::>() + { match (left.get(name), right.get(name)) { (None, Some(_)) => output.push(difference(name, Change::Added)), (Some(_), None) => output.push(difference(name, Change::Removed)), - (Some(left), Some(right)) if left != right => output.push(difference(name, Change::Changed)), + (Some(left), Some(right)) if left != right => { + output.push(difference(name, Change::Changed)) + } _ => {} } } -- cgit v1.2.3