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/package/archiver/archive_manager.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/package/archiver/archive_manager.rs')
| -rw-r--r-- | crates/shirabe/src/package/archiver/archive_manager.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/crates/shirabe/src/package/archiver/archive_manager.rs b/crates/shirabe/src/package/archiver/archive_manager.rs index e198a03..a4169ef 100644 --- a/crates/shirabe/src/package/archiver/archive_manager.rs +++ b/crates/shirabe/src/package/archiver/archive_manager.rs @@ -10,6 +10,7 @@ use shirabe_php_shim::{ use crate::downloader::DownloadManager; use crate::json::JsonFile; use crate::package::CompletePackageInterface; +use crate::package::CompletePackageInterfaceHandle; use crate::package::RootPackageInterface; use crate::package::archiver::ArchiverInterface; use crate::package::archiver::PharArchiver; @@ -57,11 +58,11 @@ impl ArchiveManager { pub fn get_package_filename_parts( &self, - package: &dyn CompletePackageInterface, + package: CompletePackageInterfaceHandle, ) -> anyhow::Result<IndexMap<String, String>> { let base_name = match package.get_archive_name() { Some(name) => name.to_string(), - None => Preg::replace("#[^a-z0-9-_]#i", "-", package.get_name())?, + None => Preg::replace("#[^a-z0-9-_]#i", "-", &package.get_name())?, }; let mut parts: IndexMap<String, String> = IndexMap::new(); @@ -89,7 +90,7 @@ impl ArchiveManager { } if let Some(source_reference) = package.get_source_reference() { - let hash = shirabe_php_shim::hash("sha1", source_reference); + let hash = shirabe_php_shim::hash("sha1", &source_reference); parts.insert("source_reference".to_string(), hash[..6].to_string()); } @@ -108,7 +109,7 @@ impl ArchiveManager { pub fn get_package_filename( &self, - package: &dyn CompletePackageInterface, + package: CompletePackageInterfaceHandle, ) -> anyhow::Result<String> { let parts = self.get_package_filename_parts(package)?; Ok(self.get_package_filename_from_parts(&parts)) @@ -116,7 +117,7 @@ impl ArchiveManager { pub fn archive( &mut self, - package: &mut dyn CompletePackageInterface, + package: CompletePackageInterfaceHandle, format: String, target_dir: String, file_name: Option<String>, @@ -152,7 +153,7 @@ impl ArchiveManager { let mut filesystem = Filesystem::new(None); - let is_root = package.as_root_package_interface().is_some(); + let is_root = package.as_rc().borrow().is_root(); let source_path: String; if is_root { @@ -169,7 +170,7 @@ impl ArchiveManager { Some(Box::pin(async { self.download_manager .borrow() - .download(package, &source_path, None) + .download(package.clone().into(), &source_path, None) .await .map(|_| ()) })), @@ -179,7 +180,7 @@ impl ArchiveManager { Some(Box::pin(async { self.download_manager .borrow() - .install(package, &source_path) + .install(package.clone().into(), &source_path) .await .map(|_| ()) })), @@ -219,7 +220,7 @@ impl ArchiveManager { let supported_formats = self.get_supported_formats(); let package_name_parts = match file_name { - None => self.get_package_filename_parts(package)?, + None => self.get_package_filename_parts(package.clone())?, Some(f) => { let mut parts = IndexMap::new(); parts.insert("base".to_string(), f); |
