aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.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-external-packages/src/symfony/console/helper/question_helper.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-external-packages/src/symfony/console/helper/question_helper.rs')
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs b/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
index 1c01d70..c36f77a 100644
--- a/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
@@ -155,7 +155,7 @@ impl QuestionHelper {
if matches!(r, PhpMixed::Bool(false)) {
let is_blocked = shirabe_php_shim::stream_get_meta_data(&input_stream)
.get("blocked")
- .map(|v| (**v).clone())
+ .cloned()
.unwrap_or(PhpMixed::Bool(true));
if !shirabe_php_shim::boolval(&is_blocked) {
@@ -236,23 +236,20 @@ impl QuestionHelper {
if !choice_question.is_multiselect() {
return choices
.get(&default.to_string())
- .map(|v| (**v).clone())
+ .cloned()
.unwrap_or(default);
}
let default_parts = shirabe_php_shim::explode(",", &default.to_string());
- let mut resolved: indexmap::IndexMap<String, Box<PhpMixed>> = indexmap::IndexMap::new();
+ let mut resolved: indexmap::IndexMap<String, PhpMixed> = indexmap::IndexMap::new();
for (k, v) in default_parts.iter().enumerate() {
let v = if question.is_trimmable() {
shirabe_php_shim::trim(v, None)
} else {
v.clone()
};
- let value = choices
- .get(&v)
- .map(|value| (**value).clone())
- .unwrap_or(PhpMixed::String(v));
- resolved.insert(k.to_string(), Box::new(value));
+ let value = choices.get(&v).cloned().unwrap_or(PhpMixed::String(v));
+ resolved.insert(k.to_string(), value);
}
return PhpMixed::Array(resolved);
@@ -306,7 +303,7 @@ impl QuestionHelper {
messages.push(format!(
" [<{tag}>{}{padding}</{tag}>] {}",
PhpMixed::String(key.clone()),
- (**value).clone(),
+ value.clone(),
));
}
@@ -849,7 +846,7 @@ impl QuestionHelper {
let stream_meta_data = shirabe_php_shim::stream_get_meta_data(input_stream);
let seekable = stream_meta_data
.get("seekable")
- .map(|v| (**v).clone())
+ .cloned()
.unwrap_or(PhpMixed::Bool(false));
let mode = stream_meta_data
.get("mode")