use rustyline::error::ReadlineError; fn main() -> anyhow::Result<()> { let mut rl = rustyline::DefaultEditor::new()?; loop { match rl.readline("> ") { Ok(line) => { eval(&line); rl.add_history_entry(line)?; } Err(ReadlineError::Eof) | Err(ReadlineError::Interrupted) => break Ok(()), Err(e) => break Err(e.into()), } } } fn eval(input: &str) { println!("{input}"); }