aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/handle.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-04 22:02:44 +0900
committernsfisis <nsfisis@gmail.com>2026-06-04 22:02:44 +0900
commitf429396f1cada5b7096d12c3cfaeea113018406c (patch)
treee831bebe8d20fe02243a24d18ed72259fe7e6ff7 /crates/shirabe/src/package/handle.rs
parent813a1b30aab5034512fd4ae4bee0acb1ece414dd (diff)
downloadphp-shirabe-f429396f1cada5b7096d12c3cfaeea113018406c.tar.gz
php-shirabe-f429396f1cada5b7096d12c3cfaeea113018406c.tar.zst
php-shirabe-f429396f1cada5b7096d12c3cfaeea113018406c.zip
feat(locker): wire get_locked_repository via LockArrayRepository
Implement LockArrayRepository::new/add_package and CanonicalPackagesTrait::get_packages (delegating to inner ArrayRepository), expose add_package on LockArrayRepositoryHandle, and add set_root_package_alias on CompleteAliasPackageHandle. With these in place, Locker::get_locked_repository is fully wired: load each locked package, register it (plus its aliasOf for AliasPackages) in package_by_name, then build CompleteAliasPackage handles for lock-file aliases via as_complete_package() narrowing. Drop the unused RepositoryInterface::clone_box default and the stale inherent LockArrayRepository::clone_box (no callers). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package/handle.rs')
-rw-r--r--crates/shirabe/src/package/handle.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/shirabe/src/package/handle.rs b/crates/shirabe/src/package/handle.rs
index aa21bf1..ab1bd0f 100644
--- a/crates/shirabe/src/package/handle.rs
+++ b/crates/shirabe/src/package/handle.rs
@@ -1459,6 +1459,14 @@ impl CompleteAliasPackageHandle {
_ => unreachable!("CompleteAliasPackageHandle invariant violated"),
}
}
+
+ pub fn set_root_package_alias(&self, value: bool) {
+ match &mut *self.0.borrow_mut() {
+ AnyPackage::CompleteAliasPackage(p) => p.set_root_package_alias(value),
+ AnyPackage::RootAliasPackage(p) => p.set_root_package_alias(value),
+ _ => unreachable!("CompleteAliasPackageHandle invariant violated"),
+ }
+ }
}
impl RootAliasPackageHandle {