rustfmt, clippy, gh actions, justfile, Default app (#4)
* `Default` app * add zed settings * add justfile * flake: update devShell, ignore tests, add `just` * update README * gh actions: lint, format, tests. build
This commit is contained in:
17
src/app.rs
17
src/app.rs
@@ -7,27 +7,28 @@ use ratatui::{
|
||||
widgets::{Block, Paragraph, Widget},
|
||||
DefaultTerminal, Frame,
|
||||
};
|
||||
use strum::{Display, EnumIter, FromRepr};
|
||||
|
||||
use crate::footer::Footer;
|
||||
use crate::pomodoro::Pomodoro;
|
||||
use crate::timer::Timer;
|
||||
use crate::{countdown::Countdown, utils::center};
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
|
||||
enum Mode {
|
||||
#[default]
|
||||
Running,
|
||||
Quit,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, Display, EnumIter, FromRepr, PartialEq, Eq, PartialOrd, Ord)]
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub enum Content {
|
||||
#[default]
|
||||
Countdown,
|
||||
Timer,
|
||||
Pomodoro,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
|
||||
pub struct App {
|
||||
content: Content,
|
||||
mode: Mode,
|
||||
@@ -35,14 +36,6 @@ pub struct App {
|
||||
}
|
||||
|
||||
impl App {
|
||||
pub const fn new() -> Self {
|
||||
Self {
|
||||
content: Content::Countdown,
|
||||
mode: Mode::Running,
|
||||
show_menu: false,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run(mut self, mut terminal: DefaultTerminal) -> Result<()> {
|
||||
while self.is_running() {
|
||||
terminal
|
||||
|
||||
@@ -11,7 +11,7 @@ use color_eyre::{eyre::Context, Result};
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
let terminal = ratatui::init();
|
||||
let app_result = App::new().run(terminal).context("app loop failed");
|
||||
let app_result = App::default().run(terminal).context("app loop failed");
|
||||
ratatui::restore();
|
||||
app_result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user