From 1921f173ea219cb4b25847294d2d3fa465550fbb Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 25 May 2026 00:58:20 +0900 Subject: refactor(package): introduce Rc> handles for packages PHP packages have reference semantics, so introduce shared-ownership handles over an AnyPackage enum (PackageInterfaceHandle and friends) and replace Box throughout. Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/shirabe/src/repository/writable_array_repository.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'crates/shirabe/src/repository/writable_array_repository.rs') diff --git a/crates/shirabe/src/repository/writable_array_repository.rs b/crates/shirabe/src/repository/writable_array_repository.rs index 663ab52..ebe70c3 100644 --- a/crates/shirabe/src/repository/writable_array_repository.rs +++ b/crates/shirabe/src/repository/writable_array_repository.rs @@ -14,7 +14,7 @@ pub struct WritableArrayRepository { } impl WritableArrayRepository { - pub fn new(packages: Vec>) -> Result { + pub fn new(packages: Vec) -> Result { Ok(Self { inner: ArrayRepository::new(packages)?, dev_package_names: Vec::new(), @@ -48,10 +48,7 @@ impl WritableArrayRepository { self.dev_mode = None; } - pub fn add_package( - &mut self, - package: Box, - ) -> Result<()> { + pub fn add_package(&mut self, package: crate::package::PackageInterfaceHandle) -> Result<()> { self.inner.add_package(package) } @@ -66,14 +63,13 @@ impl WritableArrayRepository { Ok(()) } - pub fn get_canonical_packages(&self) -> Vec> { + pub fn get_canonical_packages(&self) -> Vec { // TODO(phase-b): delegate to inner once it exposes get_canonical_packages Vec::new() } - pub fn get_packages(&self) -> Vec> { - // TODO(phase-b): delegate to inner ArrayRepository::get_packages - Vec::new() + pub fn get_packages(&self) -> Vec { + crate::repository::RepositoryInterface::get_packages(&self.inner) } pub fn get_repo_name(&self) -> String { -- cgit v1.3.1