1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
use rustyline::error::ReadlineError; use rustyline::Editor; use std::process::exit; fn prompt(prompt: &str) -> String { let mut editor = Editor::<()>::new(); let readline = editor.readline(&prompt); match readline { Ok(line) => { line }, Err(ReadlineError::Interrupted) => { exit(0) }, Err(ReadlineError::Eof) => { exit(1) } Err(err) => { println!("Error: {:?}", err); exit(1) } } } fn edit_prompt(prompt: &str, value: &str) -> String { let mut editor = Editor::<()>::new(); let readline = editor.readline_with_initial(prompt, (value, "")); match readline { Ok(line) => { line }, Err(ReadlineError::Interrupted) => { exit(0) }, Err(ReadlineError::Eof) => { exit(1) } Err(err) => { println!("Error: {:?}", err); exit(1) } } }