From 81b9fc9d92bb74aa8428ae4db39bd84e8c16095c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 20 Jun 2026 18:34:54 +0900 Subject: refactor(php-shim): drop Box wrapping from PhpMixed List/Array The List and Array variants of PhpMixed boxed their elements unnecessarily. Store PhpMixed values directly and update all callers accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/repository/package_repository.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'crates/shirabe/src/repository/package_repository.rs') diff --git a/crates/shirabe/src/repository/package_repository.rs b/crates/shirabe/src/repository/package_repository.rs index 5ba4840..554e24a 100644 --- a/crates/shirabe/src/repository/package_repository.rs +++ b/crates/shirabe/src/repository/package_repository.rs @@ -24,7 +24,7 @@ impl PackageRepository { pub fn new(config: IndexMap) -> Self { let package = config.get("package").cloned().unwrap_or(PhpMixed::Null); let config_list: Vec = match package { - PhpMixed::List(list) => list.into_iter().map(|p| *p).collect(), + PhpMixed::List(list) => list.into_iter().collect(), other => vec![other], }; @@ -33,7 +33,7 @@ impl PackageRepository { .cloned() .unwrap_or(PhpMixed::Array(IndexMap::new())) { - PhpMixed::Array(map) => map.into_iter().map(|(k, v)| (k, *v)).collect(), + PhpMixed::Array(map) => map, _ => IndexMap::new(), }; @@ -51,8 +51,8 @@ impl PackageRepository { let mut loader = ValidatingArrayLoader::new(Box::new(ArrayLoader::new(None, true)), true, None, 0); for package in &self.config { - let config_map: IndexMap> = match package { - PhpMixed::Array(m) => m.clone(), + let config_map: IndexMap = match package { + PhpMixed::Array(m) => m.iter().map(|(k, v)| (k.clone(), v.clone())).collect(), _ => IndexMap::new(), }; let package_loaded = match loader.load(config_map, "") { @@ -104,8 +104,8 @@ impl AdvisoryProviderInterface for PackageRepository { }; let mut items: Vec = Vec::new(); for data in list { - let data_map: IndexMap = match data.as_ref() { - PhpMixed::Array(m) => m.iter().map(|(k, v)| (k.clone(), *v.clone())).collect(), + let data_map: IndexMap = match data { + PhpMixed::Array(m) => m.clone(), _ => continue, }; let advisory = -- cgit v1.3.1