diff options
Diffstat (limited to 'crates/shirabe/src/console/input')
| -rw-r--r-- | crates/shirabe/src/console/input/input_argument.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/console/input/input_option.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/console/input/mod.rs | 15 |
3 files changed, 27 insertions, 0 deletions
diff --git a/crates/shirabe/src/console/input/input_argument.rs b/crates/shirabe/src/console/input/input_argument.rs index 81f38ac..53576dd 100644 --- a/crates/shirabe/src/console/input/input_argument.rs +++ b/crates/shirabe/src/console/input/input_argument.rs @@ -29,4 +29,10 @@ impl InputArgument { )?; Ok(Self { inner }) } + + /// Unwraps to the underlying Symfony `InputArgument` (used when forwarding a Composer-typed + /// definition to the Symfony command state). + pub(crate) fn to_base(&self) -> BaseInputArgument { + self.inner.clone() + } } diff --git a/crates/shirabe/src/console/input/input_option.rs b/crates/shirabe/src/console/input/input_option.rs index 3298be0..c7b2af5 100644 --- a/crates/shirabe/src/console/input/input_option.rs +++ b/crates/shirabe/src/console/input/input_option.rs @@ -30,4 +30,10 @@ impl InputOption { BaseInputOption::new(name, shortcut, mode, description.to_string(), default_mixed)?; Ok(Self { inner }) } + + /// Unwraps to the underlying Symfony `InputOption` (used when forwarding a Composer-typed + /// definition to the Symfony command state). + pub(crate) fn to_base(&self) -> BaseInputOption { + self.inner.clone() + } } diff --git a/crates/shirabe/src/console/input/mod.rs b/crates/shirabe/src/console/input/mod.rs index 093d2f4..9141f0c 100644 --- a/crates/shirabe/src/console/input/mod.rs +++ b/crates/shirabe/src/console/input/mod.rs @@ -9,6 +9,21 @@ pub enum InputDefinitionItem { Option(input_option::InputOption), } +impl InputDefinitionItem { + /// Converts to the Symfony-typed definition item accepted by `CommandData::set_definition`. + pub(crate) fn to_definition_item( + &self, + ) -> shirabe_external_packages::symfony::console::input::input_definition::DefinitionItem { + use shirabe_external_packages::symfony::console::input::input_definition::DefinitionItem; + match self { + InputDefinitionItem::Argument(argument) => { + DefinitionItem::InputArgument(argument.to_base()) + } + InputDefinitionItem::Option(option) => DefinitionItem::InputOption(option.to_base()), + } + } +} + impl From<input_argument::InputArgument> for InputDefinitionItem { fn from(value: input_argument::InputArgument) -> Self { Self::Argument(value) |
