diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-17 02:25:52 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-17 02:25:52 +0900 |
| commit | 7f606f36fef0c0467c3c0db3d0da33af486dae8a (patch) | |
| tree | c3f0a3340e1dbfc5245964a775b73030d5abf44e /crates/shirabe-external-packages/src/symfony/component/console/input | |
| parent | 9389ddbf06f6d38445c277640cab7b2270057790 (diff) | |
| download | php-shirabe-7f606f36fef0c0467c3c0db3d0da33af486dae8a.tar.gz php-shirabe-7f606f36fef0c0467c3c0db3d0da33af486dae8a.tar.zst php-shirabe-7f606f36fef0c0467c3c0db3d0da33af486dae8a.zip | |
feat(port): add stub implementations of shirabe-external-packages
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/component/console/input')
6 files changed, 162 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/component/console/input/array_input.rs b/crates/shirabe-external-packages/src/symfony/component/console/input/array_input.rs new file mode 100644 index 0000000..c70e798 --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/component/console/input/array_input.rs @@ -0,0 +1,31 @@ +use shirabe_php_shim::PhpMixed; +use indexmap::IndexMap; +use crate::symfony::component::console::input::input_interface::InputInterface; +use crate::symfony::component::console::input::input_definition::InputDefinition; + +#[derive(Debug)] +pub struct ArrayInput; + +impl ArrayInput { + pub fn new(parameters: IndexMap<String, PhpMixed>, definition: Option<InputDefinition>) -> Self { + todo!() + } +} + +impl InputInterface for ArrayInput { + fn get_first_argument(&self) -> Option<String> { todo!() } + fn has_parameter_option(&self, _values: &[&str], _only_params: bool) -> bool { todo!() } + fn get_parameter_option(&self, _values: &[&str], _default: PhpMixed, _only_params: bool) -> PhpMixed { todo!() } + fn bind(&mut self, _definition: &InputDefinition) -> anyhow::Result<()> { todo!() } + fn validate(&self) -> anyhow::Result<()> { todo!() } + fn get_arguments(&self) -> IndexMap<String, PhpMixed> { todo!() } + fn get_argument(&self, _name: &str) -> PhpMixed { todo!() } + fn set_argument(&mut self, _name: &str, _value: PhpMixed) -> anyhow::Result<()> { todo!() } + fn has_argument(&self, _name: &str) -> bool { todo!() } + fn get_options(&self) -> IndexMap<String, PhpMixed> { todo!() } + fn get_option(&self, _name: &str) -> PhpMixed { todo!() } + fn set_option(&mut self, _name: &str, _value: PhpMixed) -> anyhow::Result<()> { todo!() } + fn has_option(&self, _name: &str) -> bool { todo!() } + fn is_interactive(&self) -> bool { todo!() } + fn set_interactive(&mut self, _interactive: bool) { todo!() } +} diff --git a/crates/shirabe-external-packages/src/symfony/component/console/input/input_definition.rs b/crates/shirabe-external-packages/src/symfony/component/console/input/input_definition.rs new file mode 100644 index 0000000..7a46004 --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/component/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/component/console/input/input_interface.rs b/crates/shirabe-external-packages/src/symfony/component/console/input/input_interface.rs new file mode 100644 index 0000000..04e302e --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/component/console/input/input_interface.rs @@ -0,0 +1,19 @@ +use shirabe_php_shim::PhpMixed; + +pub trait InputInterface { + fn get_first_argument(&self) -> Option<String>; + fn has_parameter_option(&self, values: &[&str], only_params: bool) -> bool; + fn get_parameter_option(&self, values: &[&str], default: PhpMixed, only_params: bool) -> PhpMixed; + fn bind(&mut self, definition: &crate::symfony::component::console::input::input_definition::InputDefinition) -> anyhow::Result<()>; + fn validate(&self) -> anyhow::Result<()>; + 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::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; + fn is_interactive(&self) -> bool; + fn set_interactive(&mut self, interactive: bool); +} diff --git a/crates/shirabe-external-packages/src/symfony/component/console/input/input_option.rs b/crates/shirabe-external-packages/src/symfony/component/console/input/input_option.rs new file mode 100644 index 0000000..9c188ba --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/component/console/input/input_option.rs @@ -0,0 +1,46 @@ +use shirabe_php_shim::PhpMixed; + +#[derive(Debug)] +pub struct InputOption; + +impl InputOption { + pub const VALUE_NONE: i64 = 1; + pub const VALUE_REQUIRED: i64 = 2; + pub const VALUE_OPTIONAL: i64 = 4; + pub const VALUE_IS_ARRAY: i64 = 8; + pub const VALUE_NEGATABLE: i64 = 16; + + pub fn new( + name: &str, + shortcut: Option<&str>, + mode: Option<i64>, + description: &str, + default: PhpMixed, + ) -> Self { + todo!() + } + + pub fn get_name(&self) -> String { + todo!() + } + + pub fn accept_value(&self) -> bool { + todo!() + } + + pub fn is_value_required(&self) -> bool { + todo!() + } + + pub fn is_value_optional(&self) -> bool { + todo!() + } + + pub fn is_array(&self) -> bool { + todo!() + } + + pub fn get_default(&self) -> PhpMixed { + todo!() + } +} diff --git a/crates/shirabe-external-packages/src/symfony/component/console/input/mod.rs b/crates/shirabe-external-packages/src/symfony/component/console/input/mod.rs new file mode 100644 index 0000000..1a81599 --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/component/console/input/mod.rs @@ -0,0 +1,5 @@ +pub mod array_input; +pub mod input_definition; +pub mod input_interface; +pub mod input_option; +pub mod string_input; diff --git a/crates/shirabe-external-packages/src/symfony/component/console/input/string_input.rs b/crates/shirabe-external-packages/src/symfony/component/console/input/string_input.rs new file mode 100644 index 0000000..3c401eb --- /dev/null +++ b/crates/shirabe-external-packages/src/symfony/component/console/input/string_input.rs @@ -0,0 +1,31 @@ +use shirabe_php_shim::PhpMixed; +use indexmap::IndexMap; +use crate::symfony::component::console::input::input_interface::InputInterface; +use crate::symfony::component::console::input::input_definition::InputDefinition; + +#[derive(Debug)] +pub struct StringInput; + +impl StringInput { + pub fn new(input: &str) -> Self { + todo!() + } +} + +impl InputInterface for StringInput { + fn get_first_argument(&self) -> Option<String> { todo!() } + fn has_parameter_option(&self, _values: &[&str], _only_params: bool) -> bool { todo!() } + fn get_parameter_option(&self, _values: &[&str], _default: PhpMixed, _only_params: bool) -> PhpMixed { todo!() } + fn bind(&mut self, _definition: &InputDefinition) -> anyhow::Result<()> { todo!() } + fn validate(&self) -> anyhow::Result<()> { todo!() } + fn get_arguments(&self) -> IndexMap<String, PhpMixed> { todo!() } + fn get_argument(&self, _name: &str) -> PhpMixed { todo!() } + fn set_argument(&mut self, _name: &str, _value: PhpMixed) -> anyhow::Result<()> { todo!() } + fn has_argument(&self, _name: &str) -> bool { todo!() } + fn get_options(&self) -> IndexMap<String, PhpMixed> { todo!() } + fn get_option(&self, _name: &str) -> PhpMixed { todo!() } + fn set_option(&mut self, _name: &str, _value: PhpMixed) -> anyhow::Result<()> { todo!() } + fn has_option(&self, _name: &str) -> bool { todo!() } + fn is_interactive(&self) -> bool { todo!() } + fn set_interactive(&mut self, _interactive: bool) { todo!() } +} |
