mod parse; mod prompt; use parse::parse_line; use rustyline::error::ReadlineError; use rustyline::{Editor, Result}; use crate::prompt::Prompt; fn main() -> Result<()> { let mut rl = Editor::<()>::new()?; let mut prompt = Prompt::new(); loop { let readline = rl.readline(&prompt.get_prompt()); match readline { Ok(line) => { if let Err(e) = parse_line(&line) { println!("{}", e) } } Err(ReadlineError::Interrupted) => { println!("CTRL-C"); break; } Err(ReadlineError::Eof) => { println!("CTRL-D"); break; } Err(err) => { println!("Error: {:?}", err); break; } } } Ok(()) }