diff options
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/input')
5 files changed, 51 insertions, 5 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs index 0304649..0c68cf2 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs @@ -1,3 +1,4 @@ +use crate::symfony::console::input::InputDefinition; use crate::symfony::console::input::InputInterface; use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; @@ -6,7 +7,10 @@ use shirabe_php_shim::PhpMixed; pub struct ArrayInput; impl ArrayInput { - pub fn new(_parameters: IndexMap<String, PhpMixed>) -> Self { + pub fn new( + _parameters: IndexMap<String, PhpMixed>, + _definition: Option<InputDefinition>, + ) -> Self { todo!() } } @@ -26,6 +30,9 @@ impl InputInterface for ArrayInput { ) -> PhpMixed { todo!() } + fn bind(&mut self, _definition: &InputDefinition) -> anyhow::Result<()> { + todo!() + } fn validate(&self) -> anyhow::Result<()> { todo!() } diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs b/crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs new file mode 100644 index 0000000..74839fc --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs @@ -0,0 +1,30 @@ +use shirabe_php_shim::PhpMixed; + +#[derive(Debug)] +pub struct InputDefinition; + +impl InputDefinition { + pub fn new(_definition: Vec<PhpMixed>) -> Self { + todo!() + } + + pub fn add_argument(&mut self, _argument: PhpMixed) { + todo!() + } + + pub fn add_option(&mut self, _option: PhpMixed) { + todo!() + } + + pub fn has_option(&self, _name: &str) -> bool { + todo!() + } + + pub fn get_option(&self, _name: &str) -> anyhow::Result<PhpMixed> { + todo!() + } + + pub fn has_argument(&self, _name: &str) -> bool { + todo!() + } +} 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 5ec5896..14458e4 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,7 +1,6 @@ -use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; -pub trait InputInterface { +pub trait InputInterface: std::fmt::Debug { fn get_first_argument(&self) -> Option<String>; fn has_parameter_option(&self, values: &[&str], only_params: bool) -> bool; fn get_parameter_option( @@ -10,12 +9,16 @@ pub trait InputInterface { default: PhpMixed, only_params: bool, ) -> PhpMixed; + fn bind( + &mut self, + definition: &crate::symfony::console::input::InputDefinition, + ) -> anyhow::Result<()>; fn validate(&self) -> anyhow::Result<()>; - fn get_arguments(&self) -> IndexMap<String, PhpMixed>; + fn get_arguments(&self) -> indexmap::IndexMap<String, PhpMixed>; fn get_argument(&self, name: &str) -> PhpMixed; fn set_argument(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>; fn has_argument(&self, name: &str) -> bool; - fn get_options(&self) -> IndexMap<String, PhpMixed>; + fn get_options(&self) -> indexmap::IndexMap<String, PhpMixed>; fn get_option(&self, name: &str) -> PhpMixed; fn set_option(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>; fn has_option(&self, name: &str) -> bool; diff --git a/crates/shirabe-external-packages/src/symfony/console/input/mod.rs b/crates/shirabe-external-packages/src/symfony/console/input/mod.rs index 77a6f66..8c6a28f 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/mod.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/mod.rs @@ -1,5 +1,6 @@ pub mod array_input; pub mod input_argument; +pub mod input_definition; pub mod input_interface; pub mod input_option; pub mod streamable_input_interface; @@ -7,6 +8,7 @@ pub mod string_input; pub use array_input::*; pub use input_argument::*; +pub use input_definition::*; pub use input_interface::*; pub use input_option::*; pub use streamable_input_interface::*; diff --git a/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs index 3d19823..34b2bfc 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs @@ -1,3 +1,4 @@ +use crate::symfony::console::input::InputDefinition; use crate::symfony::console::input::InputInterface; use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; @@ -26,6 +27,9 @@ impl InputInterface for StringInput { ) -> PhpMixed { todo!() } + fn bind(&mut self, _definition: &InputDefinition) -> anyhow::Result<()> { + todo!() + } fn validate(&self) -> anyhow::Result<()> { todo!() } |
