Skip to main content

commit_wizard/infra/ui/
prompt.rs

1use crate::{
2    engine::PromptTrait,
3    infra::ui::{UiResult, map_scriba_error_to_cw_error},
4};
5
6impl PromptTrait for super::Ui {
7    fn text(&self, message: &str, default: Option<&str>, help: Option<&str>) -> UiResult<String> {
8        scriba::prompt::text(&self.config, message, default, help, &self.prompt_theme)
9            .map_err(map_scriba_error_to_cw_error)
10    }
11
12    fn confirm(&self, message: &str, default: bool) -> UiResult<bool> {
13        scriba::prompt::confirm(&self.config, message, default, &self.prompt_theme)
14            .map_err(map_scriba_error_to_cw_error)
15    }
16
17    fn select(&self, request: &scriba::prompt::SelectRequest) -> UiResult<String> {
18        scriba::prompt::select(&self.config, request, &self.prompt_theme)
19            .map_err(map_scriba_error_to_cw_error)
20    }
21
22    fn multiselect(&self, request: &scriba::prompt::MultiSelectRequest) -> UiResult<Vec<String>> {
23        scriba::prompt::multiselect(&self.config, request, &self.prompt_theme)
24            .map_err(map_scriba_error_to_cw_error)
25    }
26}