extern crate rustyline; use rustyline::completion::FilenameCompleter; use rustyline::error::ReadlineError; use rustyline::Editor; fn main() { let c = FilenameCompleter::new(); let mut rl = Editor::new(); rl.set_completer(Some(&c)); if let Err(_) = rl.load_history("history.txt") { println!("No previous history."); } loop { let readline = rl.readline("\x1b[1;32m>>\x1b[0m "); match readline { Ok(line) => { rl.add_history_entry(&line); println!("Line: {}", line); }, Err(ReadlineError::Interrupted) => { println!("CTRL-C"); break }, Err(ReadlineError::Eof) => { println!("CTRL-D"); break }, Err(err) => { println!("Error: {:?}", err); break } } } rl.save_history("history.txt").unwrap(); }