diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2023-02-02 13:34:34 -0330 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2023-02-02 13:34:34 -0330 |
| commit | 694a2de36951a145636dede5a0cad9e2179089e8 (patch) | |
| tree | 5911d56b0edf32c3f48c754da55672780bc69faf | |
| parent | cb697cec2638d045adfcacc1b898e769de1c1810 (diff) | |
| download | pfc-694a2de36951a145636dede5a0cad9e2179089e8.zip | |
use closure rather than run() function
| -rw-r--r-- | src/main.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs index 18fb6e7..85e3888 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,24 +1,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 -} + let mut calculator = Calculator::default(); -fn run<B: Backend>(mut calculator: Calculator, terminal: &mut Terminal<B>) -> io::Result<()> { - loop { - terminal.draw(|f| calculator.draw(f))?; + let result = || -> 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(()); + if let Event::Key(key) = event::read()? { + if let Signal::Exit = calculator.handle_input(key) { + return Ok(()); + } } } - } + }(); + + ui::cleanup_terminal(terminal)?; + result } |