Merge pull request #383 from asarhaddon/ada2tco-do
[jackhill/mal.git] / rust / step0_repl.rs
1 extern crate rustyline;
2
3 use rustyline::error::ReadlineError;
4 use rustyline::Editor;
5
6 fn main() {
7 // `()` can be used when no completer is required
8 let mut rl = Editor::<()>::new();
9 if rl.load_history(".mal-history").is_err() {
10 println!("No previous history.");
11 }
12
13 loop {
14 let readline = rl.readline("user> ");
15 match readline {
16 Ok(line) => {
17 rl.add_history_entry(&line);
18 rl.save_history(".mal-history").unwrap();
19 if line.len() > 0 {
20 println!("{}", line);
21 }
22 },
23 Err(ReadlineError::Interrupted) => continue,
24 Err(ReadlineError::Eof) => break,
25 Err(err) => {
26 println!("Error: {:?}", err);
27 break
28 }
29 }
30 }
31 }
32
33 // vim: ts=2:sw=2:expandtab