Skip to main content

cli/lib/questions/
mod.rs

1//! Question descriptors for upstream `lib/questions/questions.ts`.
2
3pub mod questions;
4
5#[derive(Clone, Debug, PartialEq, Eq)]
6pub struct Question {
7    pub name: String,
8    pub message: Option<String>,
9    pub kind: QuestionKind,
10    pub default_answer: Option<String>,
11    pub choices: Vec<String>,
12}
13
14#[derive(Clone, Debug, PartialEq, Eq)]
15pub enum QuestionKind {
16    Input,
17    Select,
18}
19
20pub fn generate_input(name: impl Into<String>, message: impl Into<String>) -> Question {
21    Question {
22        name: name.into(),
23        message: Some(message.into()),
24        kind: QuestionKind::Input,
25        default_answer: None,
26        choices: Vec::new(),
27    }
28}
29
30pub fn generate_select(name: impl Into<String>) -> Question {
31    Question {
32        name: name.into(),
33        message: None,
34        kind: QuestionKind::Select,
35        default_answer: None,
36        choices: Vec::new(),
37    }
38}