rustyline 介紹

linghuyichong發表於2020-07-10

最近在寫區塊鏈的教學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();
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝