aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs')
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs b/crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs
index b0c0090..afb7ca8 100644
--- a/crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/descriptor/text_descriptor.rs
@@ -308,11 +308,14 @@ impl TextDescriptor {
self.write_text("<comment>Usage:</comment>\n", &options);
self.write_text(" command [options] [arguments]\n\n", &options);
- // PHP: new InputDefinition($application->getDefinition()->getOptions()).
- // `InputOption` is not Clone and lives behind `Rc`, so the option-only
- // definition cannot be reconstructed by value yet.
- let definition: InputDefinition =
- todo!("new InputDefinition($application->getDefinition()->getOptions())");
+ let app_definition = application.borrow_mut().get_definition();
+ let options_only: Vec<std::rc::Rc<InputOption>> = app_definition
+ .borrow()
+ .get_options()
+ .values()
+ .cloned()
+ .collect();
+ let definition = InputDefinition::from_options(options_only)?;
self.describe_input_definition(&definition, options.clone())?;
self.write_text("\n", &IndexMap::new());