diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-12 01:01:35 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-12 01:01:43 +0900 |
| commit | 1e44f5723e4c0e0903d00a61f254901e612fe5e1 (patch) | |
| tree | 9c2e1eec364bbf6418a4072ee7767b04c3df0297 /crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs | |
| parent | ddf0a624145b618c05c2ee47414545b99b685f37 (diff) | |
| download | php-shirabe-1e44f5723e4c0e0903d00a61f254901e612fe5e1.tar.gz php-shirabe-1e44f5723e4c0e0903d00a61f254901e612fe5e1.tar.zst php-shirabe-1e44f5723e4c0e0903d00a61f254901e612fe5e1.zip | |
feat(symfony-console): port Symfony Console and make the workspace compile
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs')
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs | 37 |
1 files changed, 22 insertions, 15 deletions
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<String>; - 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<String, PhpMixed>; - fn get_argument(&self, name: &str) -> PhpMixed; + + fn get_argument(&self, name: &str) -> anyhow::Result<PhpMixed>; + fn set_argument(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>; + fn has_argument(&self, name: &str) -> bool; + fn get_options(&self) -> indexmap::IndexMap<String, PhpMixed>; - fn get_option(&self, name: &str) -> PhpMixed; + + fn get_option(&self, name: &str) -> anyhow::Result<PhpMixed>; + 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); } |
