1pub 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}