From cc5d73c05a0abca2eebcc8a6afa0b1543ee49850 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 27 May 2026 00:49:33 +0900 Subject: refactor(package): pass package handles by value throughout Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/shirabe/src/util/package_info.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'crates/shirabe/src/util/package_info.rs') diff --git a/crates/shirabe/src/util/package_info.rs b/crates/shirabe/src/util/package_info.rs index 6660404..df34951 100644 --- a/crates/shirabe/src/util/package_info.rs +++ b/crates/shirabe/src/util/package_info.rs @@ -1,13 +1,12 @@ //! ref: composer/src/Composer/Util/PackageInfo.php -use crate::package::CompletePackageInterface; -use crate::package::PackageInterface; +use crate::package::PackageInterfaceHandle; pub struct PackageInfo; impl PackageInfo { - pub fn get_view_source_url(package: &dyn PackageInterface) -> Option { - if let Some(complete) = package.as_complete_package_interface() { + pub fn get_view_source_url(package: PackageInterfaceHandle) -> Option { + if let Some(complete) = package.as_complete() { let support = complete.get_support(); if let Some(source) = support.get("source") { if source != "" { @@ -16,14 +15,14 @@ impl PackageInfo { } } - package.get_source_url().map(|s| s.to_string()) + package.get_source_url() } - pub fn get_view_source_or_homepage_url(package: &dyn PackageInterface) -> Option { - let url = Self::get_view_source_url(package).or_else(|| { + pub fn get_view_source_or_homepage_url(package: PackageInterfaceHandle) -> Option { + let url = Self::get_view_source_url(package.clone()).or_else(|| { package - .as_complete_package_interface() - .and_then(|complete| complete.get_homepage().map(|s| s.to_string())) + .as_complete() + .and_then(|complete| complete.get_homepage()) }); if url.as_deref() == Some("") { -- cgit v1.3.1