12个版本
新 0.2.7 | 2024年8月2日 |
---|---|
0.2.6 | 2024年8月2日 |
0.2.4 | 2024年7月26日 |
0.2.0 | 2024年6月27日 |
0.1.3 | 2024年6月24日 |
#36 in #user-input
512 每月下载
用于 vizer-cli
705KB
402 行
Selthi
selthi 是一个用于构建交互式提示的库,灵感来自 inquire.
它提供两种提示,一种用于让用户从给定的列表中选择一个选项,可以显示每个选项的图片,另一种提示用于让用户输入一个字符串。
演示
示例
示例可以在 examples
目录中找到。运行它们以查看基本行为
cargo run --example images --features with_images
使用方法
将Selthi添加到您的依赖项中。
cargo add selthi
* 如果您想支持图片,请添加功能 with_images
selthi = { version = "0.2.7", features = ["with_images"] }
提示
目前支持两种不同的提示类型。
输入
Input
向用户显示一条消息,提示他们输入一些内容。然后,用户的输入被存储在String中,并返回给提示调用者。
let ans = Input::new("What's your name?").prompt();
match ans {
Some(name) => println!("Hello {}!", name),
None => println!("There was an error, please try again"),
}
选择
Select
提示适合于您需要用户从多个选项中选择一个的情况。
let options: Vec<&str> = vec![
"Rust",
"C",
"C++",
"Javascript",
"Java",
"C#",
"Python",
"Haskell",
"Lisp",
"Erlang",
];
let ans = Select::new("What's your favorite programming language?", options).prompt();
match ans {
Some(language) => println!("{} rocks!", language),
None => println!("There was an error, please try again"),
}
您还可以在用户选择选项时显示图片。
let options: Vec<&str> = vec!["Linux", "Windows", "macOS"];
let images: Vec<&str> = vec![
"./examples/images/linux.png",
"./examples/images/windows.png",
"./examples/images/macos.png",
];
let ans = Select::new("What's your favorite operating system?", options)
.with_images(images)
.without_help_message()
.prompt();
match ans {
Some(os) => println!("{} is a good choice!", os),
None => println!("There was an error, please try again"),
}
依赖项
~0.8–6MB
~20K SLoC