diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-27 00:49:33 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-27 00:54:09 +0900 |
| commit | cc5d73c05a0abca2eebcc8a6afa0b1543ee49850 (patch) | |
| tree | 091a0d01232d927f13f3ab22700701804980f231 /crates/shirabe/src/util/package_info.rs | |
| parent | c5850d62beabef0a6bcc4cf6a179589c0ba8f405 (diff) | |
| download | php-shirabe-cc5d73c05a0abca2eebcc8a6afa0b1543ee49850.tar.gz php-shirabe-cc5d73c05a0abca2eebcc8a6afa0b1543ee49850.tar.zst php-shirabe-cc5d73c05a0abca2eebcc8a6afa0b1543ee49850.zip | |
refactor(package): pass package handles by value throughout
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/util/package_info.rs')
| -rw-r--r-- | crates/shirabe/src/util/package_info.rs | 17 |
1 files changed, 8 insertions, 9 deletions
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<String> { - if let Some(complete) = package.as_complete_package_interface() { + pub fn get_view_source_url(package: PackageInterfaceHandle) -> Option<String> { + 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<String> { - let url = Self::get_view_source_url(package).or_else(|| { + pub fn get_view_source_or_homepage_url(package: PackageInterfaceHandle) -> Option<String> { + 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("") { |
