快速开始

首先通过cargo添加dialogue-macro依赖:

cargo add dialogue-macro

然后在您的Rust代码中导入该crate:

#![allow(unused)] fn main() { use dialogue_macro::Asker; }

接下来,使用#[derive(Asker, Debug)]宏来为需要交互式输入的结构体派生相关trait:

#![allow(unused)] fn main() { #[derive(Asker, Debug)] struct User { #[input(prompt = "请输入您的名字:")] name: String, age: u32, } }

#[derive(Asker)]会自动为结构体实现asker()构造器方法。对于带有#[input(prompt = "...")]属性的字段,您可以直接调用同名方法(无需再传入提示文本作为参数)。

最后,使用派生的方法链式调用来获取用户输入:

fn main() { let user = User::asker() .name() .age("请输入您的年龄:") .finish(); println!("{:?}", user); }

运行该程序,您将看到类似以下的交互式提示: