From 1e44f5723e4c0e0903d00a61f254901e612fe5e1 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 12 Jun 2026 01:01:35 +0900 Subject: feat(symfony-console): port Symfony Console and make the workspace compile Co-Authored-By: Claude Opus 4.8 --- .../src/symfony/console/input/input_interface.rs | 37 +++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs') diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs index 14458e4..d271845 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs @@ -1,32 +1,39 @@ +use crate::symfony::console::input::input_definition::InputDefinition; use shirabe_php_shim::PhpMixed; -pub trait InputInterface: std::fmt::Debug { +pub trait InputInterface: std::fmt::Debug + shirabe_php_shim::AsAny { fn get_first_argument(&self) -> Option; - fn has_parameter_option(&self, values: &[&str], only_params: bool) -> bool; + + fn has_parameter_option(&self, values: PhpMixed, only_params: bool) -> bool; + fn get_parameter_option( &self, - values: &[&str], + values: PhpMixed, default: PhpMixed, only_params: bool, ) -> PhpMixed; - fn bind( - &mut self, - definition: &crate::symfony::console::input::InputDefinition, - ) -> anyhow::Result<()>; - fn validate(&self) -> anyhow::Result<()>; + + fn bind(&mut self, definition: &InputDefinition) -> anyhow::Result<()>; + + fn validate(&mut self) -> anyhow::Result<()>; + fn get_arguments(&self) -> indexmap::IndexMap; - fn get_argument(&self, name: &str) -> PhpMixed; + + fn get_argument(&self, name: &str) -> anyhow::Result; + fn set_argument(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>; + fn has_argument(&self, name: &str) -> bool; + fn get_options(&self) -> indexmap::IndexMap; - fn get_option(&self, name: &str) -> PhpMixed; + + fn get_option(&self, name: &str) -> anyhow::Result; + fn set_option(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>; + fn has_option(&self, name: &str) -> bool; + fn is_interactive(&self) -> bool; - fn set_interactive(&mut self, interactive: bool); - /// Equivalent to PHP `(string) $input` (Input::__toString). - fn to_input_string(&self) -> String { - todo!() - } + fn set_interactive(&mut self, interactive: bool); } -- cgit v1.3.1