diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-20 18:34:54 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-20 18:34:54 +0900 |
| commit | 81b9fc9d92bb74aa8428ae4db39bd84e8c16095c (patch) | |
| tree | 3efb6476d797e2a95545c4c3abba468c3e3c8d52 /crates/shirabe/src/repository/package_repository.rs | |
| parent | c09cd630afb4bb0ca10e926f93bf706ca828ae85 (diff) | |
| download | php-shirabe-81b9fc9d92bb74aa8428ae4db39bd84e8c16095c.tar.gz php-shirabe-81b9fc9d92bb74aa8428ae4db39bd84e8c16095c.tar.zst php-shirabe-81b9fc9d92bb74aa8428ae4db39bd84e8c16095c.zip | |
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) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/repository/package_repository.rs')
| -rw-r--r-- | crates/shirabe/src/repository/package_repository.rs | 12 |
1 files changed, 6 insertions, 6 deletions
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<String, PhpMixed>) -> Self { let package = config.get("package").cloned().unwrap_or(PhpMixed::Null); let config_list: Vec<PhpMixed> = 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<String, Box<PhpMixed>> = match package { - PhpMixed::Array(m) => m.clone(), + let config_map: IndexMap<String, PhpMixed> = 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<AnySecurityAdvisory> = Vec::new(); for data in list { - let data_map: IndexMap<String, PhpMixed> = match data.as_ref() { - PhpMixed::Array(m) => m.iter().map(|(k, v)| (k.clone(), *v.clone())).collect(), + let data_map: IndexMap<String, PhpMixed> = match data { + PhpMixed::Array(m) => m.clone(), _ => continue, }; let advisory = |
