diff options
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("") { |
