Confirm
Confirm 用于获取用户的布尔值确认输入(是或否)。
定义 Confirm 字段
要将字段定义为 Confirm 类型,只需将其声明为 bool 或 Option<bool> 类型。与 Input 类似,如果字段为非必填项,可以声明为 Option<bool>。
配置选项
- prompt: 指定提示用户进行确认的文本内容。
- default: 设置字段的默认值(
true或false),在询问用户时显示该默认值供参考或直接采用。 - with_default: 布尔值参数,当设为
true时,在调用相应方法时需要传递默认值。
示例
#![allow(unused)] use dialogue_macro::Asker; #[derive(Asker, Debug)] struct User { boy: bool, #[confirm(prompt = "Are you a student?", with_default = true)] student: Option<bool>, } fn main() { let user = User::asker() .boy("Are you a boy?") .student(true) .finish(); println!("{:?}", user); }

在上述代码中:
User结构体中的boy字段是一个布尔类型变量,通过询问用户来确定其性别。student字段是一个具有默认值的可选布尔类型变量,通过#[confirm]宏提供了自定义确认提示 "Are you a student?",默认情况下用户被假设为学生(值为true)。
在 main 函数中:
- 我们初始化了
User结构体的询问器实例,并分别为boy和student字段指定了提示信息和默认值。 - 当运行程序时,会依次显示预设的提示信息,并根据默认值进行交互式信息收集。
- 收集过程完成后,
.finish()方法返回一个包含了用户回答信息的User结构体实例,并将其输出至控制台。