From 2a1696906344cb4da768a940bf8b1f89bbc82b47 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 22 May 2026 04:19:14 +0900 Subject: refactor: share Pool via Rc Convert Pool to Rc> so Solver, Decisions, and RuleSetGenerator share it, resolving the todo!() placeholders that blocked the dependency resolver (Phase C shared ownership). Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/shirabe/src/repository/composer_repository.rs | 8 ++++---- crates/shirabe/src/repository/path_repository.rs | 2 +- crates/shirabe/src/repository/repository_factory.rs | 2 +- crates/shirabe/src/repository/vcs/forgejo_driver.rs | 2 +- crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs | 6 +++--- crates/shirabe/src/repository/vcs/git_driver.rs | 10 +++++----- crates/shirabe/src/repository/vcs/github_driver.rs | 10 +++++----- crates/shirabe/src/repository/vcs/gitlab_driver.rs | 10 +++++----- crates/shirabe/src/repository/vcs/perforce_driver.rs | 2 +- 9 files changed, 26 insertions(+), 26 deletions(-) (limited to 'crates/shirabe/src/repository') diff --git a/crates/shirabe/src/repository/composer_repository.rs b/crates/shirabe/src/repository/composer_repository.rs index 772cedc..624c4a2 100644 --- a/crates/shirabe/src/repository/composer_repository.rs +++ b/crates/shirabe/src/repository/composer_repository.rs @@ -265,7 +265,7 @@ impl ComposerRepository { let loader = ArrayLoader::new(Some(version_parser.clone()), true); let r#loop = std::rc::Rc::new(std::cell::RefCell::new(Loop::new( - std::rc::Rc::clone(&http_downloader), + http_downloader.clone(), None, ))); @@ -2949,7 +2949,7 @@ impl ComposerRepository { let mut dispatcher = dispatcher.borrow_mut(); let mut pre_file_download_event = PreFileDownloadEvent::new( PluginEvents::PRE_FILE_DOWNLOAD.to_string(), - std::rc::Rc::clone(&self.http_downloader), + self.http_downloader.clone(), filename.clone(), "metadata".to_string(), { @@ -3144,7 +3144,7 @@ impl ComposerRepository { let mut dispatcher = dispatcher.borrow_mut(); let mut pre_file_download_event = PreFileDownloadEvent::new( PluginEvents::PRE_FILE_DOWNLOAD.to_string(), - std::rc::Rc::clone(&self.http_downloader), + self.http_downloader.clone(), filename.clone(), "metadata".to_string(), { @@ -3312,7 +3312,7 @@ impl ComposerRepository { let mut dispatcher = dispatcher.borrow_mut(); let mut pre_file_download_event = PreFileDownloadEvent::new( PluginEvents::PRE_FILE_DOWNLOAD.to_string(), - std::rc::Rc::clone(&self.http_downloader), + self.http_downloader.clone(), filename.clone(), "metadata".to_string(), { diff --git a/crates/shirabe/src/repository/path_repository.rs b/crates/shirabe/src/repository/path_repository.rs index 7d37951..8d9965e 100644 --- a/crates/shirabe/src/repository/path_repository.rs +++ b/crates/shirabe/src/repository/path_repository.rs @@ -72,7 +72,7 @@ impl PathRepository { }); let version_guesser = VersionGuesser::new( config, - std::rc::Rc::clone(&process), + process.clone(), VersionParser::new(), Some(io.clone_box()), ); diff --git a/crates/shirabe/src/repository/repository_factory.rs b/crates/shirabe/src/repository/repository_factory.rs index 38e436b..0f2e6b2 100644 --- a/crates/shirabe/src/repository/repository_factory.rs +++ b/crates/shirabe/src/repository/repository_factory.rs @@ -206,7 +206,7 @@ impl RepositoryFactory { let mut rm = RepositoryManager::new( io, - std::rc::Rc::clone(config), + config.clone(), http_downloader, event_dispatcher, Some(process), diff --git a/crates/shirabe/src/repository/vcs/forgejo_driver.rs b/crates/shirabe/src/repository/vcs/forgejo_driver.rs index 18df35d..72fd6af 100644 --- a/crates/shirabe/src/repository/vcs/forgejo_driver.rs +++ b/crates/shirabe/src/repository/vcs/forgejo_driver.rs @@ -534,7 +534,7 @@ impl ForgejoDriver { todo!("clone io for GitDriver setup"), self.inner.config.clone(), self.inner.http_downloader.clone(), - std::rc::Rc::clone(&self.inner.process), + self.inner.process.clone(), ), tags: None, branches: None, diff --git a/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs b/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs index 1cb7b46..19f0246 100644 --- a/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs +++ b/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs @@ -694,9 +694,9 @@ impl GitBitbucketDriver { // TODO(phase-b): only handle TransportException let mut bitbucket_util = Bitbucket::new( self.inner.io.clone_box(), - std::rc::Rc::clone(&self.inner.config), - Some(std::rc::Rc::clone(&self.inner.process)), - Some(std::rc::Rc::clone(&self.inner.http_downloader)), + self.inner.config.clone(), + Some(self.inner.process.clone()), + Some(self.inner.http_downloader.clone()), None, )?; diff --git a/crates/shirabe/src/repository/vcs/git_driver.rs b/crates/shirabe/src/repository/vcs/git_driver.rs index 8c0aefd..69b16b6 100644 --- a/crates/shirabe/src/repository/vcs/git_driver.rs +++ b/crates/shirabe/src/repository/vcs/git_driver.rs @@ -118,8 +118,8 @@ impl GitDriver { let mut git_util = GitUtil::new( self.inner.io.clone_box(), - std::rc::Rc::clone(&self.inner.config), - std::rc::Rc::clone(&self.inner.process), + self.inner.config.clone(), + self.inner.process.clone(), std::rc::Rc::new(std::cell::RefCell::new(Filesystem::new(None))), ); if !git_util.sync_mirror(&self.inner.url, &self.repo_dir)? { @@ -184,8 +184,8 @@ impl GitDriver { let mut git_util = GitUtil::new( self.inner.io.clone_box(), - std::rc::Rc::clone(&self.inner.config), - std::rc::Rc::clone(&self.inner.process), + self.inner.config.clone(), + self.inner.process.clone(), std::rc::Rc::new(std::cell::RefCell::new(Filesystem::new(None))), ); if !Filesystem::is_local_path(&self.inner.url) { @@ -451,7 +451,7 @@ impl GitDriver { let mut git_util = GitUtil::new( io.clone_box(), todo!(), - std::rc::Rc::clone(&process), + process.clone(), std::rc::Rc::new(std::cell::RefCell::new(Filesystem::new(None))), ); GitUtil::clean_env(&process); diff --git a/crates/shirabe/src/repository/vcs/github_driver.rs b/crates/shirabe/src/repository/vcs/github_driver.rs index c2207ee..6c8d495 100644 --- a/crates/shirabe/src/repository/vcs/github_driver.rs +++ b/crates/shirabe/src/repository/vcs/github_driver.rs @@ -1016,9 +1016,9 @@ impl GitHubDriver { Err(e) => { let mut git_hub_util = GitHub::new( self.inner.io.clone_box(), - std::rc::Rc::clone(&self.inner.config), - Some(std::rc::Rc::clone(&self.inner.process)), - Some(std::rc::Rc::clone(&self.inner.http_downloader)), + self.inner.config.clone(), + Some(self.inner.process.clone()), + Some(self.inner.http_downloader.clone()), ) .map_err(|err| TransportException::new(err.to_string(), 0))?; @@ -1296,8 +1296,8 @@ impl GitHubDriver { repo_config, self.inner.io.clone_box(), self.inner.config.clone(), - std::rc::Rc::clone(&self.inner.http_downloader), - std::rc::Rc::clone(&self.inner.process), + self.inner.http_downloader.clone(), + self.inner.process.clone(), ); git_driver.initialize()?; self.git_driver = Some(git_driver); diff --git a/crates/shirabe/src/repository/vcs/gitlab_driver.rs b/crates/shirabe/src/repository/vcs/gitlab_driver.rs index 1966237..8a24b7d 100644 --- a/crates/shirabe/src/repository/vcs/gitlab_driver.rs +++ b/crates/shirabe/src/repository/vcs/gitlab_driver.rs @@ -770,8 +770,8 @@ impl GitLabDriver { repo_config, self.inner.io.clone_box(), self.inner.config.clone(), - std::rc::Rc::clone(&self.inner.http_downloader), - std::rc::Rc::clone(&self.inner.process), + self.inner.http_downloader.clone(), + self.inner.process.clone(), ); git_driver.initialize()?; self.git_driver = Some(git_driver); @@ -886,9 +886,9 @@ impl GitLabDriver { Err(e) => { let mut git_lab_util = GitLab::new( self.inner.io.clone_box(), - std::rc::Rc::clone(&self.inner.config), - Some(std::rc::Rc::clone(&self.inner.process)), - Some(std::rc::Rc::clone(&self.inner.http_downloader)), + self.inner.config.clone(), + Some(self.inner.process.clone()), + Some(self.inner.http_downloader.clone()), ) .map_err(|err| TransportException::new(err.to_string(), 0))?; diff --git a/crates/shirabe/src/repository/vcs/perforce_driver.rs b/crates/shirabe/src/repository/vcs/perforce_driver.rs index 0bd6d12..35da517 100644 --- a/crates/shirabe/src/repository/vcs/perforce_driver.rs +++ b/crates/shirabe/src/repository/vcs/perforce_driver.rs @@ -76,7 +76,7 @@ impl PerforceDriver { repo_config.clone(), self.inner.url.clone(), repo_dir, - std::rc::Rc::clone(&self.inner.process), + self.inner.process.clone(), self.inner.io.clone_box(), )); -- cgit v1.3.1