From 059d528b76914aaefebc42705984586ebb1c607a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 8 May 2026 23:45:50 +0900 Subject: refactor(advisory): fix clippy warnings Implement std::str::FromStr for AuditFormat and AbandonedHandling instead of ad-hoc from_str methods (resolves should_implement_trait). Group Auditor::audit() parameters into AuditOptions to resolve too_many_arguments. --- crates/mozart-registry/src/advisory.rs | 36 ++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'crates/mozart-registry/src/advisory.rs') diff --git a/crates/mozart-registry/src/advisory.rs b/crates/mozart-registry/src/advisory.rs index 8cf112e..894a0ac 100644 --- a/crates/mozart-registry/src/advisory.rs +++ b/crates/mozart-registry/src/advisory.rs @@ -66,6 +66,17 @@ pub struct AbandonedPackage { pub replacement: Option, } +/// Options passed to `Auditor::audit()`. +pub struct AuditOptions<'a> { + pub format: AuditFormat, + pub warning_only: bool, + pub ignore_list: &'a IndexMap>, + pub abandoned: AbandonedHandling, + pub ignored_severities: &'a IndexMap>, + pub ignore_unreachable: bool, + pub ignore_abandoned: &'a IndexMap>, +} + /// Mirrors `Composer\Advisory\Auditor`. pub struct Auditor; @@ -82,34 +93,33 @@ impl Auditor { console: &Console, repo_set: &RepositorySet, packages: &[PackageInfo], - format: AuditFormat, - warning_only: bool, - ignore_list: &IndexMap>, - abandoned: AbandonedHandling, - ignored_severities: &IndexMap>, - ignore_unreachable: bool, - ignore_abandoned: &IndexMap>, + options: &AuditOptions<'_>, ) -> anyhow::Result { + let format = options.format; let (all_advisories, unreachable_repos) = repo_set .get_matching_security_advisories( packages, format == AuditFormat::Summary, - ignore_unreachable, + options.ignore_unreachable, ) .await?; let ProcessedAdvisories { advisories, ignored_advisories, - } = self.process_advisories(all_advisories, ignore_list, ignored_severities); + } = self.process_advisories( + all_advisories, + options.ignore_list, + options.ignored_severities, + ); - let abandoned_packages = if abandoned == AbandonedHandling::Ignore { + let abandoned_packages = if options.abandoned == AbandonedHandling::Ignore { vec![] } else { - self.filter_abandoned_packages(packages, ignore_abandoned) + self.filter_abandoned_packages(packages, options.ignore_abandoned) }; - let abandoned_count = if abandoned == AbandonedHandling::Fail { + let abandoned_count = if options.abandoned == AbandonedHandling::Fail { abandoned_packages.len() } else { 0 @@ -159,7 +169,7 @@ impl Auditor { let msg = format!( "Found {active_total} security vulnerability advisor{plurality} affecting {active_pkg_count} package{pkg_plurality}{punctuation}" ); - if warning_only { + if options.warning_only { console_writeln_error!(console, &console_format!("{msg}")); } else { console_writeln_error!(console, &console_format!("{msg}")); -- cgit v1.3.1