aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src')
-rw-r--r--crates/shirabe/src/console/application.rs13
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(());
}