From f429396f1cada5b7096d12c3cfaeea113018406c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 4 Jun 2026 22:02:44 +0900 Subject: 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 --- crates/shirabe/src/repository/lock_array_repository.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'crates/shirabe/src/repository/lock_array_repository.rs') 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 { - todo!() + RepositoryInterface::get_packages(&self.inner) } } impl LockArrayRepository { - pub fn clone_box(&self) -> Box { - todo!() + pub fn new(packages: Vec) -> anyhow::Result { + Ok(Self { + inner: ArrayRepository::new(packages)?, + }) + } + + pub fn add_package(&self, package: PackageInterfaceHandle) -> anyhow::Result<()> { + self.inner.add_package(package) } } -- cgit v1.3.1