blob: 18fb6e7660504c9407c8dc908d3304f9ac684627 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
use crossterm::event::{self, Event};
use std::io;
use tui::{backend::Backend, Terminal};
use pfc::{ui, Calculator, Signal};
fn main() -> io::Result<()> {
let mut terminal = ui::init_terminal()?;
let result = run(Calculator::default(), &mut terminal);
ui::cleanup_terminal(terminal)?;
result
}
fn run<B: Backend>(mut calculator: Calculator, terminal: &mut Terminal<B>) -> io::Result<()> {
loop {
terminal.draw(|f| calculator.draw(f))?;
if let Event::Key(key) = event::read()? {
if let Signal::Exit = calculator.handle_input(key) {
return Ok(());
}
}
}
}
|