diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-04 22:02:44 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-04 22:02:44 +0900 |
| commit | f429396f1cada5b7096d12c3cfaeea113018406c (patch) | |
| tree | e831bebe8d20fe02243a24d18ed72259fe7e6ff7 /crates/shirabe/src/package/handle.rs | |
| parent | 813a1b30aab5034512fd4ae4bee0acb1ece414dd (diff) | |
| download | php-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.rs | 8 |
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 { |
