diff options
Diffstat (limited to 'crates/shirabe')
| -rw-r--r-- | crates/shirabe/src/console/application.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/shirabe/src/console/application.rs b/crates/shirabe/src/console/application.rs index 5591c84b..86639444 100644 --- a/crates/shirabe/src/console/application.rs +++ b/crates/shirabe/src/console/application.rs @@ -718,11 +718,14 @@ impl Application { } if CompletionInput::TYPE_OPTION_NAME == input.get_completion_type() { - // $suggestions->suggestOptions($this->getDefinition()->getOptions()); - // TODO(review): get_options() yields Rc<InputOption> (shared, non-Clone) while - // suggest_options() consumes owned InputOption values; an ownership/clone strategy - // for InputOption is needed. - suggestions.suggest_options(todo!("owned options from get_definition().get_options()")); + let options: Vec<std::rc::Rc<InputOption>> = self + .get_definition() + .borrow() + .get_options() + .values() + .cloned() + .collect(); + suggestions.suggest_options(options); return Ok(()); } |
