diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-22 04:19:14 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-22 04:19:25 +0900 |
| commit | 2a1696906344cb4da768a940bf8b1f89bbc82b47 (patch) | |
| tree | 9e37f93baaa9858037ab3a25b13a676f07ccb3a9 /crates/shirabe/src/repository/vcs | |
| parent | 6739da8a8e271a82d1bf8ca79bba58640ae6e743 (diff) | |
| download | php-shirabe-2a1696906344cb4da768a940bf8b1f89bbc82b47.tar.gz php-shirabe-2a1696906344cb4da768a940bf8b1f89bbc82b47.tar.zst php-shirabe-2a1696906344cb4da768a940bf8b1f89bbc82b47.zip | |
refactor: share Pool via Rc<RefCell>
Convert Pool to Rc<RefCell<Pool>> 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) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/repository/vcs')
6 files changed, 20 insertions, 20 deletions
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(), )); |
