From 20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 31 May 2026 21:34:47 +0900 Subject: fix(package): port every PHP clone operator to handle dup() --- crates/shirabe/src/command/show_command.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'crates/shirabe/src/command/show_command.rs') diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs index 781ee20..e7fcfe1 100644 --- a/crates/shirabe/src/command/show_command.rs +++ b/crates/shirabe/src/command/show_command.rs @@ -212,8 +212,9 @@ impl ShowCommand { && input.get_option("locked").as_bool() != Some(true) { let composer = self.require_composer(None, None)?; - let package: crate::package::RootPackageInterfaceHandle = - composer.borrow_partial().get_package().clone(); + let package = crate::package::RootPackageInterfaceHandle::dup( + composer.borrow_partial().get_package(), + ); if input.get_option("name-only").as_bool() == Some(true) { self.get_io().write(&package.get_name()); @@ -381,14 +382,15 @@ impl ShowCommand { }; let root_pkg = composer_local.get_package(); - let root_repo: RepositoryInterfaceHandle = - if input.get_option("self").as_bool() == Some(true) { - RepositoryInterfaceHandle::new(RootPackageRepository::new( - composer_local.get_package().clone(), - )) - } else { - RepositoryInterfaceHandle::new(InstalledArrayRepository::new()?) - }; + let root_repo: RepositoryInterfaceHandle = if input.get_option("self").as_bool() + == Some(true) + { + RepositoryInterfaceHandle::new(RootPackageRepository::new( + crate::package::RootPackageInterfaceHandle::dup(composer_local.get_package()), + )) + } else { + RepositoryInterfaceHandle::new(InstalledArrayRepository::new()?) + }; if input.get_option("no-dev").as_bool() == Some(true) { let local_packages = composer_local .get_repository_manager() @@ -401,8 +403,10 @@ impl ShowCommand { false, Vec::new(), ); - let cloned: Vec = - packages.into_iter().map(|p| p.into()).collect(); + let cloned: Vec = packages + .iter() + .map(crate::package::PackageInterfaceHandle::dup) + .collect(); installed_repo = RepositoryInterfaceHandle::new(InstalledRepository::new(vec![ root_repo.clone(), RepositoryInterfaceHandle::new(InstalledArrayRepository::new_with_packages( -- cgit v1.3.1