prepl 0.6.3

A very barebones REPL library
Documentation
use std::io;

use crossterm::event::{KeyCode, KeyEvent};

use crate::Repl;

impl Repl {
    fn e(&mut self, event: impl Into<KeyEvent>) {
        _ = self.process_event(event.into(), io::sink());
    }
    fn write(&mut self, text: &str) {
        text.chars().for_each(|key| self.e(KeyCode::Char(key)));
    }
    fn move_left(&mut self, n: usize) {
        (0..n).for_each(|_| self.e(KeyCode::Left));
    }
    fn move_right(&mut self, n: usize) {
        (0..n).for_each(|_| self.e(KeyCode::Right));
    }
}

#[test]
fn hello_world() {
    let mut repl = Repl::default();
    repl.write("Hello, World!");
    assert_eq!(repl.finish_line(), "Hello, World!");
}

#[test]
fn backspace() {
    let mut repl = Repl::default();
    repl.write("Hello, World!");
    repl.e(KeyCode::Backspace);
    repl.move_left(5);
    repl.e(KeyCode::Backspace);
    repl.move_left(2);
    repl.e(KeyCode::Backspace);
    repl.move_right(3);
    repl.e(KeyCode::Delete);
    assert_eq!(repl.finish_line(), "Helo,Wrld");
}