use rustyline::error::ReadlineError; use rustyline::{DefaultEditor, Result}; use nixjit::*; fn main() -> Result<()> { let mut rl = DefaultEditor::new()?; loop { let readline = rl.readline("nixjit-repl> "); match readline { Ok(expr) => { if expr.trim().is_empty() { continue; } let prog = compile(expr.as_str()).unwrap(); println!("{}", run(prog).unwrap()); rl.add_history_entry(expr.as_str())?; } Err(ReadlineError::Interrupted) => { println!("CTRL-C"); break; } Err(ReadlineError::Eof) => { println!("CTRL-D"); break; } Err(err) => { println!("Error: {:?}", err); break; } } } Ok(()) }