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/vcs/forgejo_driver.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/vcs/forgejo_driver.rs')
| -rw-r--r-- | crates/shirabe/src/repository/vcs/forgejo_driver.rs | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/crates/shirabe/src/repository/vcs/forgejo_driver.rs b/crates/shirabe/src/repository/vcs/forgejo_driver.rs index 3706e02..18f1cf1 100644 --- a/crates/shirabe/src/repository/vcs/forgejo_driver.rs +++ b/crates/shirabe/src/repository/vcs/forgejo_driver.rs @@ -246,7 +246,7 @@ impl ForgejoDriver { let branch_data = response.decode_json()?; if let PhpMixed::List(ref list) = branch_data { for branch in list { - if let PhpMixed::Array(ref arr) = **branch { + if let PhpMixed::Array(ref arr) = *branch { let name = arr .get("name") .and_then(|v| v.as_string()) @@ -289,7 +289,7 @@ impl ForgejoDriver { let tags_data = response.decode_json()?; if let PhpMixed::List(ref list) = tags_data { for tag in list { - if let PhpMixed::Array(ref arr) = **tag { + if let PhpMixed::Array(ref arr) = *tag { let name = arr .get("name") .and_then(|v| v.as_string()) @@ -341,9 +341,7 @@ impl ForgejoDriver { let composer = if self.inner.should_cache(identifier) { if let Some(res) = self.inner.cache.as_mut().and_then(|c| c.read(identifier)) { let parsed = JsonFile::parse_json(Some(res.as_str()), None)?; - parsed - .as_array() - .map(|m| m.iter().map(|(k, v)| (k.clone(), (**v).clone())).collect()) + parsed.as_array().map(|m| m.clone()) } else { let file_content = self.get_file_content("composer.json", identifier)?; let c = VcsDriverBase::finish_base_composer_information( @@ -358,7 +356,7 @@ impl ForgejoDriver { &PhpMixed::Array( composer_map .iter() - .map(|(k, v)| (k.clone(), Box::new(v.clone()))) + .map(|(k, v)| (k.clone(), v.clone())) .collect(), ), JsonEncodeOptions { @@ -423,8 +421,7 @@ impl ForgejoDriver { }; if let Some(PhpMixed::Array(support)) = composer_map.get_mut("support") { - support - .insert("source".to_string(), Box::new(PhpMixed::String(source_url))); + support.insert("source".to_string(), PhpMixed::String(source_url)); } } @@ -442,8 +439,7 @@ impl ForgejoDriver { .unwrap_or_default() ); if let Some(PhpMixed::Array(support)) = composer_map.get_mut("support") { - support - .insert("issues".to_string(), Box::new(PhpMixed::String(issues_url))); + support.insert("issues".to_string(), PhpMixed::String(issues_url)); } } @@ -574,9 +570,7 @@ impl ForgejoDriver { return Ok(()); } if let PhpMixed::Array(ref arr) = data { - let map: IndexMap<String, PhpMixed> = - arr.iter().map(|(k, v)| (k.clone(), *v.clone())).collect(); - self.repository_data = Some(ForgejoRepositoryData::from_remote_data(&map)?); + self.repository_data = Some(ForgejoRepositoryData::from_remote_data(arr)?); } } } |
