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_repository_interface.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'crates/shirabe/src/repository/writable_repository_interface.rs') diff --git a/crates/shirabe/src/repository/writable_repository_interface.rs b/crates/shirabe/src/repository/writable_repository_interface.rs index 7094211..b5b1e35 100644 --- a/crates/shirabe/src/repository/writable_repository_interface.rs +++ b/crates/shirabe/src/repository/writable_repository_interface.rs @@ -2,17 +2,18 @@ use crate::installer::InstallationManager; use crate::package::PackageInterface; +use crate::package::PackageInterfaceHandle; use crate::repository::RepositoryInterface; use anyhow::Result; pub trait WritableRepositoryInterface: RepositoryInterface { fn write(&mut self, dev_mode: bool, installation_manager: &InstallationManager) -> Result<()>; - fn add_package(&mut self, package: Box) -> Result<()>; + fn add_package(&mut self, package: PackageInterfaceHandle) -> Result<()>; fn remove_package(&mut self, package: &dyn PackageInterface) -> Result<()>; - fn get_canonical_packages(&self) -> Vec>; + fn get_canonical_packages(&self) -> Vec; fn reload(&mut self); -- cgit v1.3.1