aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/vcs/forgejo_driver.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-20 18:34:54 +0900
committernsfisis <nsfisis@gmail.com>2026-06-20 18:34:54 +0900
commit81b9fc9d92bb74aa8428ae4db39bd84e8c16095c (patch)
tree3efb6476d797e2a95545c4c3abba468c3e3c8d52 /crates/shirabe/src/repository/vcs/forgejo_driver.rs
parentc09cd630afb4bb0ca10e926f93bf706ca828ae85 (diff)
downloadphp-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.rs20
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)?);
}
}
}