最近在写区块链的教学demo的时候,需要编写一个cli客户端和用户进行交互,最终找到了rustyline,按照官方的例子敲了一遍,觉得使用起来非常的舒适,因此推荐给大家。
示例
配置文件
修改Cargo.toml文件:
[dependencies]
rustyline = "6.2.0"
源码
示例源码如下:
//src/main.rs
use rustyline::error::ReadlineError;
use rustyline::Editor;
fn main() {
let mut r1 = Editor::<()>::new();
if r1.load_history("history.txt").is_err() {
println!("No previous history.");
}
loop {
let readline = r1.readline(">>");
match readline {
Ok(line) => {
r1.add_history_entry(line.as_str());
println!("Line: {}", line);
},
Err(ReadlineError::Interrupted) => {
println!("CTRL-C");
break
},
Err(ReadlineError::Eof) => {
println!("CTRL-D");
break
},
Err(err) => {
println!("Error: {:?}", err);
break
}
}
}
r1.save_history("history.txt").unwrap();
}