0.1.0 |
|
---|
#62 in #read-line
67KB
1.5K SLoC
promptio
Rust 中构建自己的交互式命令行工具的工具包,利用 crossterm。
入门
将包放入您的 Cargo.toml
。
[dependencies]
promptio = "0.1.0"
特性
- Readline
- 提供接收和显示用户输入的行
- 掩码、切换插入/覆盖模式以及建议
- Select
- 提供选择框以选择项目
- 自定义
- 允许您定义自己的命令行应用程序。
- 请参阅 examples/advanced 获取更多具体示例。
示例
Readline
use promptio::{build::Builder, readline, Result};
fn main() -> Result<()> {
let mut p = readline::Builder::default().build()?;
loop {
let (line, exit_code) = p.run()?;
if exit_code == 0 {
println!("result: {:?}", line);
} else {
return Ok(());
}
}
}
Select
use crossterm::style;
use promptio::{
build::Builder,
edit::{Register, SelectBox},
select, Result,
};
fn main() -> Result<()> {
let mut selectbox = Box::new(SelectBox::default());
selectbox.register_all((0..100).map(|v| v.to_string()).collect::<Vec<String>>());
let mut p = select::Builder::default()
.title("Q: What number do you like?")
.title_color(style::Color::DarkGreen)
.selectbox(selectbox)
.build()?;
let (line, exit_code) = p.run()?;
if exit_code == 0 {
println!("result: {:?}", line)
}
Ok(())
}
依赖项
~2–12MB
~77K SLoC