extern crate clap; extern crate crossterm; extern crate engine; type StdResult = Result> pub fn main () -> StdResult<()> { let cli = Cli::parse(); let engine = run_jack_engine(move |_: &Client, _: &ProcessScope| { Control::Continue }); let app = App::new() } pub struct App { sleep: std::time::Duration } impl App { fn init () -> Self { Self { sleep: std::time::Duration::from_millis(16) } } fn run (&self) -> StdResult<()> { loop { self.update()?; self.render()?; std::thread::sleep(self.sleep); } } fn update (&self) -> StdResult<()> { } fn render (&self) -> StdResult<()> { use crossterm::*; let (cols, rows) = terminal::size()?; } }