aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/installer.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-22 04:19:14 +0900
committernsfisis <nsfisis@gmail.com>2026-05-22 04:19:25 +0900
commit2a1696906344cb4da768a940bf8b1f89bbc82b47 (patch)
tree9e37f93baaa9858037ab3a25b13a676f07ccb3a9 /crates/shirabe/src/installer.rs
parent6739da8a8e271a82d1bf8ca79bba58640ae6e743 (diff)
downloadphp-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/installer.rs')
-rw-r--r--crates/shirabe/src/installer.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/shirabe/src/installer.rs b/crates/shirabe/src/installer.rs
index 8ea0249..3ccb65f 100644
--- a/crates/shirabe/src/installer.rs
+++ b/crates/shirabe/src/installer.rs
@@ -420,7 +420,7 @@ impl Installer {
if self.install && self.execute_operations {
// force binaries re-generation in case they are missing
- let repository_manager = std::rc::Rc::clone(&self.repository_manager);
+ let repository_manager = self.repository_manager.clone();
let repository_manager = repository_manager.borrow();
for package in repository_manager.get_local_repository().get_packages() {
self.installation_manager
@@ -440,7 +440,7 @@ impl Installer {
if show_funding {
let mut funding_count: i64 = 0;
- let repository_manager = std::rc::Rc::clone(&self.repository_manager);
+ let repository_manager = self.repository_manager.clone();
let repository_manager = repository_manager.borrow();
for package in repository_manager.get_local_repository().get_packages() {
if let Some(cp) = package.as_complete_package_interface() {
@@ -507,7 +507,7 @@ impl Installer {
IndexMap::new(),
IndexMap::new(),
);
- let repository_manager = std::rc::Rc::clone(&self.repository_manager);
+ let repository_manager = self.repository_manager.clone();
let repository_manager = repository_manager.borrow();
for repo in repository_manager.get_repositories() {
repo_set.add_repository(repo.clone_box())?;
@@ -612,7 +612,7 @@ impl Installer {
// creating repository set
let policy = self.create_policy(true, locked_repository.as_ref());
let mut repository_set = self.create_repository_set(true, &platform_repo, &aliases, None);
- let repository_manager = std::rc::Rc::clone(&self.repository_manager);
+ let repository_manager = self.repository_manager.clone();
let repository_manager = repository_manager.borrow();
let repositories = repository_manager.get_repositories();
for repository in repositories {