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/repository_interface.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'crates/shirabe/src/repository/repository_interface.rs') diff --git a/crates/shirabe/src/repository/repository_interface.rs b/crates/shirabe/src/repository/repository_interface.rs index 4bd1f3e..9cadc48 100644 --- a/crates/shirabe/src/repository/repository_interface.rs +++ b/crates/shirabe/src/repository/repository_interface.rs @@ -1,7 +1,8 @@ //! ref: composer/src/Composer/Repository/RepositoryInterface.php -use crate::package::BasePackage; +use crate::package::BasePackageHandle; use crate::package::PackageInterface; +use crate::package::PackageInterfaceHandle; use crate::repository::AdvisoryProviderInterface; use indexmap::IndexMap; use shirabe_php_shim::Countable; @@ -24,7 +25,7 @@ impl Clone for FindPackageConstraint { #[derive(Debug)] pub struct LoadPackagesResult { pub names_found: Vec, - pub packages: IndexMap>, + pub packages: IndexMap, } #[derive(Debug, Clone)] @@ -59,22 +60,22 @@ pub trait RepositoryInterface: Countable + std::fmt::Debug { &self, name: &str, constraint: FindPackageConstraint, - ) -> Option>; + ) -> Option; fn find_packages( &self, name: &str, constraint: Option, - ) -> Vec>; + ) -> Vec; - fn get_packages(&self) -> Vec>; + fn get_packages(&self) -> Vec; fn load_packages( &self, package_name_map: IndexMap>, acceptable_stabilities: IndexMap, stability_flags: IndexMap, - already_loaded: IndexMap>>, + already_loaded: IndexMap>, ) -> LoadPackagesResult; fn search(&self, query: String, mode: i64, r#type: Option) -> Vec; -- cgit v1.3.1