From eea4efe87e455742ec17881ee93d8095925e8516 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 28 May 2026 22:43:11 +0900 Subject: refactor(repository): introduce Rc> handles for repositories Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/shirabe/src/command/suggests_command.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'crates/shirabe/src/command/suggests_command.rs') diff --git a/crates/shirabe/src/command/suggests_command.rs b/crates/shirabe/src/command/suggests_command.rs index aa1ae15..9105474 100644 --- a/crates/shirabe/src/command/suggests_command.rs +++ b/crates/shirabe/src/command/suggests_command.rs @@ -8,6 +8,7 @@ use crate::io::IOInterface; use crate::repository::InstalledRepository; use crate::repository::PlatformRepository; use crate::repository::RepositoryInterface; +use crate::repository::RepositoryInterfaceHandle; use crate::repository::RootPackageRepository; use anyhow::Result; use indexmap::IndexMap; @@ -49,8 +50,10 @@ impl SuggestsCommand { let root_package_handle: crate::package::RootPackageInterfaceHandle = composer.get_package().clone(); - let mut installed_repos: Vec> = - vec![Box::new(RootPackageRepository::new(root_package_handle))]; + let mut installed_repos: Vec = + vec![RepositoryInterfaceHandle::new(RootPackageRepository::new( + root_package_handle, + ))]; if composer.get_locker().borrow_mut().is_locked() { // TODO(phase-b): get_platform_overrides returns IndexMap; PlatformRepository::new expects IndexMap @@ -60,7 +63,7 @@ impl SuggestsCommand { .get_platform_overrides()?; let platform_overrides: IndexMap = todo!("convert IndexMap to IndexMap"); - installed_repos.push(Box::new(PlatformRepository::new( + installed_repos.push(RepositoryInterfaceHandle::new(PlatformRepository::new( vec![], platform_overrides, )?)); @@ -68,13 +71,13 @@ impl SuggestsCommand { .get_locker() .borrow_mut() .get_locked_repository(!input.get_option("no-dev").as_bool().unwrap_or(false))?; - installed_repos.push(Box::new(locked_repo)); + installed_repos.push(RepositoryInterfaceHandle::new(locked_repo)); } else { // TODO(phase-b): Config::get returns PhpMixed; need to coerce to IndexMap let _platform_cfg = composer.get_config().borrow().get("platform"); let platform_overrides: IndexMap = todo!("extract IndexMap from PhpMixed config value"); - installed_repos.push(Box::new(PlatformRepository::new( + installed_repos.push(RepositoryInterfaceHandle::new(PlatformRepository::new( vec![], platform_overrides, )?)); @@ -82,8 +85,7 @@ impl SuggestsCommand { composer .get_repository_manager() .borrow() - .get_local_repository() - .clone_box(), + .get_local_repository(), ); } -- cgit v1.3.1