From ebf889219bbba702df0e7756c78268eb5437c30a Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Wed, 1 Feb 2023 09:46:17 -0330 Subject: refactor --- src/lib.rs | 2 ++ src/main.rs | 38 ++++++-------------------------------- src/ui.rs | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 32 deletions(-) create mode 100644 src/ui.rs (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 6e363b3..527ddb8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,5 @@ +pub mod ui; + enum Token { Operand(f64), Operator(Operator), diff --git a/src/main.rs b/src/main.rs index 85e95ea..d6bf2d9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,18 +1,14 @@ -use crossterm::{ - event::{ - self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEvent, KeyModifiers, - }, - execute, - terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, -}; +use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers}; use std::io; use tui::{ - backend::{Backend, CrosstermBackend}, + backend::Backend, layout::{Constraint, Direction, Layout}, widgets::Paragraph, Frame, Terminal, }; +use pfc::ui; + enum Signal { None, Exit, @@ -52,34 +48,12 @@ impl App { fn main() -> io::Result<()> { let app = App::default(); - let mut terminal = init_terminal()?; + let mut terminal = ui::init_terminal()?; let result = run(app, &mut terminal); - cleanup_terminal(terminal)?; + ui::cleanup_terminal(terminal)?; result } -fn init_terminal() -> Result>, io::Error> { - enable_raw_mode()?; - let mut stdout = io::stdout(); - execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; - let backend = CrosstermBackend::new(stdout); - Terminal::new(backend) -} - -fn cleanup_terminal(mut terminal: Terminal) -> Result<(), io::Error> -where - B: Backend + io::Write, -{ - disable_raw_mode()?; - execute!( - terminal.backend_mut(), - LeaveAlternateScreen, - DisableMouseCapture, - )?; - terminal.show_cursor()?; - Ok(()) -} - fn run(mut app: App, terminal: &mut Terminal) -> io::Result<()> { loop { terminal.draw(|f| app.draw(f))?; diff --git a/src/ui.rs b/src/ui.rs new file mode 100644 index 0000000..9133f1c --- /dev/null +++ b/src/ui.rs @@ -0,0 +1,32 @@ +use crossterm::{ + event::{DisableMouseCapture, EnableMouseCapture}, + execute, + terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, +}; +use std::io; +use tui::{ + backend::{Backend, CrosstermBackend}, + Terminal, +}; + +pub fn init_terminal() -> Result>, io::Error> { + enable_raw_mode()?; + let mut stdout = io::stdout(); + execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; + let backend = CrosstermBackend::new(stdout); + Terminal::new(backend) +} + +pub fn cleanup_terminal(mut terminal: Terminal) -> Result<(), io::Error> +where + B: Backend + io::Write, +{ + disable_raw_mode()?; + execute!( + terminal.backend_mut(), + LeaveAlternateScreen, + DisableMouseCapture, + )?; + terminal.show_cursor()?; + Ok(()) +} -- cgit v1.2.3