From 432472808051cb4f1bb9517b858dbc810aaa5a63 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 25 Jul 2026 16:16:33 +0900 Subject: refactor: replace redundant clones with moves Co-Authored-By: Claude Opus 5 --- crates/shirabe/src/downloader/download_manager.rs | 5 ++--- crates/shirabe/src/downloader/file_downloader.rs | 18 +++++++++--------- crates/shirabe/src/downloader/fossil_downloader.rs | 10 ++-------- crates/shirabe/src/downloader/git_downloader.rs | 12 ++++++------ crates/shirabe/src/downloader/hg_downloader.rs | 12 +++--------- crates/shirabe/src/downloader/path_downloader.rs | 6 +++--- crates/shirabe/src/downloader/perforce_downloader.rs | 4 ++-- crates/shirabe/src/downloader/vcs_downloader.rs | 12 ++++++------ 8 files changed, 33 insertions(+), 46 deletions(-) (limited to 'crates/shirabe/src/downloader') diff --git a/crates/shirabe/src/downloader/download_manager.rs b/crates/shirabe/src/downloader/download_manager.rs index 7ecdfd96..2aa9c74e 100644 --- a/crates/shirabe/src/downloader/download_manager.rs +++ b/crates/shirabe/src/downloader/download_manager.rs @@ -151,7 +151,7 @@ impl DownloadManager { "Downloader \"{}\" is a {} type downloader and can not be used to download {} for package {}", shirabe_php_shim::get_class_obj(&*downloader.borrow()), downloader_installation_source, - installation_source.clone().unwrap_or_default(), + installation_source.unwrap_or_default(), package, ), code: 0, @@ -521,8 +521,7 @@ impl DownloadManager { // reverse sources in case dist is the preferred source for this package if !self.prefer_source - && (self.prefer_dist - || "dist" == self.resolve_package_install_preference(package.clone())) + && (self.prefer_dist || "dist" == self.resolve_package_install_preference(package)) { sources = array_reverse(&sources, false); } diff --git a/crates/shirabe/src/downloader/file_downloader.rs b/crates/shirabe/src/downloader/file_downloader.rs index aaa3995a..bb5c9705 100644 --- a/crates/shirabe/src/downloader/file_downloader.rs +++ b/crates/shirabe/src/downloader/file_downloader.rs @@ -224,7 +224,7 @@ impl DownloaderInterface for FileDownloader { // TODO(plugin): dispatch PreFileDownloadEvent and apply its custom cache key / processed url. urls[0] = url.clone(); - let checksum = package.get_dist_sha1_checksum().map(|s| s.to_string()); + let checksum = package.get_dist_sha1_checksum(); let cache_key = url.cache_key.clone(); // use from cache if it is present and has a valid checksum or we have no checksum to check against @@ -263,7 +263,7 @@ impl DownloaderInterface for FileDownloader { self.last_cache_writes .lock() .unwrap() - .insert(package.get_name().to_string(), cache_key.clone()); + .insert(package.get_name(), cache_key.clone()); } } else { if output { @@ -297,15 +297,15 @@ impl DownloaderInterface for FileDownloader { DOWNLOAD_METADATA .lock() .unwrap() - .insert(package.get_name().to_string(), file_size); + .insert(package.get_name(), file_size); if Platform::get_env("GITHUB_ACTIONS").is_some() && Platform::get_env("COMPOSER_TESTS_ARE_RUNNING").is_none() { - RESPONSE_HEADERS.lock().unwrap().insert( - package.get_name().to_string(), - response.get_headers().clone(), - ); + RESPONSE_HEADERS + .lock() + .unwrap() + .insert(package.get_name(), response.get_headers().clone()); } if let Some(cache) = self.cache.as_ref() @@ -314,7 +314,7 @@ impl DownloaderInterface for FileDownloader { self.last_cache_writes .lock() .unwrap() - .insert(package.get_name().to_string(), cache_key.clone()); + .insert(package.get_name(), cache_key.clone()); cache.borrow_mut().copy_from(&cache_key, &file_name); } @@ -479,7 +479,7 @@ impl DownloaderInterface for FileDownloader { path.to_string(), format!("{}/{}", vendor_dir, first_segment), format!("{}/composer/", vendor_dir), - vendor_dir.clone(), + vendor_dir, ]; if let Some(paths) = self diff --git a/crates/shirabe/src/downloader/fossil_downloader.rs b/crates/shirabe/src/downloader/fossil_downloader.rs index 9442e87c..2f6df9a4 100644 --- a/crates/shirabe/src/downloader/fossil_downloader.rs +++ b/crates/shirabe/src/downloader/fossil_downloader.rs @@ -138,10 +138,7 @@ impl VcsDownloader for FossilDownloader { "fossil".to_string(), "update".to_string(), "--".to_string(), - package - .get_source_reference() - .unwrap_or_default() - .to_string(), + package.get_source_reference().unwrap_or_default(), ], real_path, &mut output, @@ -190,10 +187,7 @@ impl VcsDownloader for FossilDownloader { "fossil".to_string(), "up".to_string(), "--".to_string(), - target - .get_source_reference() - .unwrap_or_default() - .to_string(), + target.get_source_reference().unwrap_or_default(), ], real_path, &mut output, diff --git a/crates/shirabe/src/downloader/git_downloader.rs b/crates/shirabe/src/downloader/git_downloader.rs index eaedc453..c2599d2b 100644 --- a/crates/shirabe/src/downloader/git_downloader.rs +++ b/crates/shirabe/src/downloader/git_downloader.rs @@ -426,13 +426,13 @@ impl GitDownloader { } let mut command1: Vec = vec!["git".to_string(), "checkout".to_string()]; - command1.extend(force.clone()); + command1.extend(force); command1.extend(vec![git_ref.clone(), "--".to_string()]); let command2 = vec![ "git".to_string(), "reset".to_string(), "--hard".to_string(), - git_ref.clone(), + git_ref, "--".to_string(), ]; { @@ -827,7 +827,7 @@ impl VcsDownloader for GitDownloader { io_interface::NORMAL, ); self.inner.io.write_error3( - &format!(" Cloning to cache at {}", cache_path.clone()), + &format!(" Cloning to cache at {}", cache_path), true, io_interface::DEBUG, ); @@ -909,7 +909,7 @@ impl VcsDownloader for GitDownloader { "git".to_string(), "clone".to_string(), "--no-checkout".to_string(), - cache_path.clone(), + cache_path, path.clone(), ]; base.extend(clone_flags); @@ -1054,7 +1054,7 @@ impl VcsDownloader for GitDownloader { .unwrap_or(false); if has_cached { msg = format!("Checking out {} from cache", self.get_short_hash(&r#ref)); - remote_url = cache_path.clone(); + remote_url = cache_path; } else { msg = format!("Checking out {}", self.get_short_hash(&r#ref)); remote_url = "%url%".to_string(); @@ -1092,7 +1092,7 @@ impl VcsDownloader for GitDownloader { "set-url".to_string(), "composer".to_string(), "--".to_string(), - remote_url.clone(), + remote_url, ], vec![ "git".to_string(), diff --git a/crates/shirabe/src/downloader/hg_downloader.rs b/crates/shirabe/src/downloader/hg_downloader.rs index 98ba4174..1feecd3e 100644 --- a/crates/shirabe/src/downloader/hg_downloader.rs +++ b/crates/shirabe/src/downloader/hg_downloader.rs @@ -100,10 +100,7 @@ impl VcsDownloader for HgDownloader { "hg".to_string(), "up".to_string(), "--".to_string(), - package - .get_source_reference() - .unwrap_or_default() - .to_string(), + package.get_source_reference().unwrap_or_default(), ]; let mut ignored_output = String::new(); if self.inner.process.borrow_mut().execute_args( @@ -139,10 +136,7 @@ impl VcsDownloader for HgDownloader { self.inner.process.clone(), ); - let ref_ = target - .get_source_reference() - .unwrap_or_default() - .to_string(); + let ref_ = target.get_source_reference().unwrap_or_default(); self.inner.io.write_error(&format!( " Updating to {}", target.get_source_reference().unwrap_or_default() @@ -163,7 +157,7 @@ impl VcsDownloader for HgDownloader { }; hg_utils.run_command(pull_command, url.to_string(), Some(path.to_string())); - let ref_clone = ref_.clone(); + let ref_clone = ref_; let up_command = move |_url: String| -> Vec { vec![ "hg".to_string(), diff --git a/crates/shirabe/src/downloader/path_downloader.rs b/crates/shirabe/src/downloader/path_downloader.rs index d6c5fee7..1f5498ad 100644 --- a/crates/shirabe/src/downloader/path_downloader.rs +++ b/crates/shirabe/src/downloader/path_downloader.rs @@ -64,12 +64,12 @@ impl PathDownloader { let mut guesser = VersionGuesser::new( self.inner.config.clone(), self.inner.process.clone(), - parser.clone(), + parser, Some(self.inner.io.borrow().clone()), ); let dumper = ArrayDumper::new(); - let package_config = dumper.dump(package.clone()); + let package_config = dumper.dump(package); let package_version = guesser.guess_version(&package_config, &path); if let Ok(Some(version)) = package_version { return version.commit; @@ -332,7 +332,7 @@ impl DownloaderInterface for PathDownloader { self.inner.io.borrow().write_error3( &format!( " - {}{}", - InstallOperation::format(package.clone(), false), + InstallOperation::format(package, false), appendix ), true, diff --git a/crates/shirabe/src/downloader/perforce_downloader.rs b/crates/shirabe/src/downloader/perforce_downloader.rs index 2bbf9b72..5f272fd5 100644 --- a/crates/shirabe/src/downloader/perforce_downloader.rs +++ b/crates/shirabe/src/downloader/perforce_downloader.rs @@ -116,7 +116,7 @@ impl VcsDownloader for PerforceDownloader { path: &str, url: &str, ) -> anyhow::Result> { - let source_ref = package.get_source_reference().map(|s| s.to_string()); + let source_ref = package.get_source_reference(); let label = self.get_label_from_source_reference(source_ref.clone().unwrap_or_default()); self.inner.io.write_error(&format!( @@ -127,7 +127,7 @@ impl VcsDownloader for PerforceDownloader { { let mut perforce = self.perforce.borrow_mut(); let perforce = perforce.as_mut().unwrap(); - perforce.set_stream(&source_ref.clone().unwrap_or_default()); + perforce.set_stream(&source_ref.unwrap_or_default()); perforce.p4_login(); perforce.write_p4_client_spec(); perforce.connect_client(); diff --git a/crates/shirabe/src/downloader/vcs_downloader.rs b/crates/shirabe/src/downloader/vcs_downloader.rs index 26394341..45ca0e3a 100644 --- a/crates/shirabe/src/downloader/vcs_downloader.rs +++ b/crates/shirabe/src/downloader/vcs_downloader.rs @@ -57,14 +57,14 @@ impl VcsDownloaderBase { let mut guesser = VersionGuesser::new( self.config.clone(), self.process.clone(), - parser.clone(), + parser, Some(self.io.clone()), ); let dumper = ArrayDumper::new(); - let package_config = dumper.dump(package.clone()); + let package_config = dumper.dump(package); if let Ok(Some(package_version)) = guesser.guess_version(&package_config, path) { - return package_version.commit.clone(); + return package_version.commit; } None @@ -415,15 +415,15 @@ pub trait VcsDownloader: let guesser = VersionGuesser::new( self.config().clone(), self.process().clone(), - parser.clone(), + parser, Some(self.io().clone()), ); let dumper = ArrayDumper::new(); - let package_config = dumper.dump(package.clone()); + let package_config = dumper.dump(package); let mut guesser = guesser; if let Ok(Some(package_version)) = guesser.guess_version(&package_config, path) { - return package_version.commit.clone(); + return package_version.commit; } None -- cgit v1.3.1