ELM model init
This commit is contained in:
@@ -1,33 +1,50 @@
|
||||
use std::{process::exit, time::Duration};
|
||||
use std::{error::Error, process::exit, time::Duration};
|
||||
|
||||
use data::{ArchivedData, Data};
|
||||
use ratatui::{
|
||||
layout::{self, Constraint, Layout},
|
||||
prelude::Stylize,
|
||||
widgets::{Block, Borders},
|
||||
Frame,
|
||||
};
|
||||
use rkyv::{deserialize, rancor};
|
||||
mod data_graph;
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
struct Root {
|
||||
counter: i32,
|
||||
running_state: RunningState,
|
||||
}
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
enum RunningState {
|
||||
#[default]
|
||||
Running,
|
||||
Done,
|
||||
}
|
||||
|
||||
#[derive(PartialEq)]
|
||||
enum Message {
|
||||
Increment,
|
||||
Decrement,
|
||||
Reset,
|
||||
Quit,
|
||||
}
|
||||
|
||||
impl Root {
|
||||
fn view(&self, f: &mut Frame) {
|
||||
let block = Block::new()
|
||||
.border_type(ratatui::widgets::BorderType::Rounded)
|
||||
.borders(Borders::ALL);
|
||||
f.render_widget(block, f.area());
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut app = Root::default();
|
||||
ratatui::run(|terminal| loop {
|
||||
terminal.draw(|frame| {
|
||||
let layout = frame.area().layout_vec(&Layout::vertical([
|
||||
Constraint::Percentage(33),
|
||||
Constraint::Percentage(33),
|
||||
Constraint::Percentage(33),
|
||||
]));
|
||||
let middle = layout[1].layout_vec(&Layout::horizontal([
|
||||
Constraint::Percentage(33),
|
||||
Constraint::Percentage(33),
|
||||
Constraint::Percentage(33),
|
||||
]));
|
||||
let widget = Block::new()
|
||||
.border_type(ratatui::widgets::BorderType::Rounded)
|
||||
.borders(Borders::ALL)
|
||||
.title("Mroew");
|
||||
frame.render_widget(widget, middle[1]);
|
||||
app.view(frame);
|
||||
})?;
|
||||
if crossterm::event::read().unwrap().is_key_press() {
|
||||
break Ok(());
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user