/src/console/traits.rs
use crate::console::Key;
pub trait ConsoleIO {
// input
fn readkey(&mut self) -> Option<Key>;
fn readline(&mut self, buf: &mut [u8]) -> usize;
fn discard(&mut self);
// output
fn pos(&mut self, x: usize, y: usize);
fn writeb(&mut self, b: u8);
fn write<T: AsRef<[u8]>>(&mut self, a: T);
fn clear(&mut self);
}