aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/lock_array_repository.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/repository/lock_array_repository.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/repository/lock_array_repository.rs')
-rw-r--r--crates/shirabe/src/repository/lock_array_repository.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/crates/shirabe/src/repository/lock_array_repository.rs b/crates/shirabe/src/repository/lock_array_repository.rs
index f9b64a7..08e888a 100644
--- a/crates/shirabe/src/repository/lock_array_repository.rs
+++ b/crates/shirabe/src/repository/lock_array_repository.rs
@@ -19,13 +19,19 @@ pub struct LockArrayRepository {
impl CanonicalPackagesTrait for LockArrayRepository {
fn get_packages(&self) -> Vec<PackageInterfaceHandle> {
- todo!()
+ RepositoryInterface::get_packages(&self.inner)
}
}
impl LockArrayRepository {
- pub fn clone_box(&self) -> Box<dyn RepositoryInterface> {
- todo!()
+ pub fn new(packages: Vec<PackageInterfaceHandle>) -> anyhow::Result<Self> {
+ Ok(Self {
+ inner: ArrayRepository::new(packages)?,
+ })
+ }
+
+ pub fn add_package(&self, package: PackageInterfaceHandle) -> anyhow::Result<()> {
+ self.inner.add_package(package)
}
}