aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2023-02-02 13:34:34 -0330
committerSam Anthony <sam@samanthony.xyz>2023-02-02 13:34:34 -0330
commit694a2de36951a145636dede5a0cad9e2179089e8 (patch)
tree5911d56b0edf32c3f48c754da55672780bc69faf
parentcb697cec2638d045adfcacc1b898e769de1c1810 (diff)
downloadpfc-694a2de36951a145636dede5a0cad9e2179089e8.zip
use closure rather than run() function
-rw-r--r--src/main.rs24
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
}