blob: be9f440e7ff8959f19d8b9cd1704d3d28d38ea1c (
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
25
|
use crossterm::event::{self, Event};
use std::io;
use tui::{backend::Backend, Terminal};
use pfc::{ui, Calculator, Signal};
fn main() -> io::Result<()> {
let calculator = Calculator::default();
let mut terminal = ui::init_terminal()?;
let result = run(calculator, &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(());
}
}
}
}
|