would mostly just like some tips on designing & structuring projects
use ratatui::layout::Margin;
pub static MODE_MARGIN: Margin = Margin::new(3, 2);
pub trait Mode {
fn enter(&mut self) -> anyhow::Result<()>;
fn exit(&mut self) -> anyhow::Result<()>;
}
use ratatui::{buffer::Buffer, layout::{Margin, Rect}, widgets::{Paragraph, Widget}};
use crate::modes::mode::{MODE_MARGIN, Mode};
#[derive(Debug)]
pub struct ClickerMode {
pub toggled: bool, //overall toggled
pub clicking: bool, //left mouse pressed
}
impl ClickerMode {
}
impl Mode for ClickerMode {
fn enter(&mut self) -> anyhow::Result<()> {
println!("enter clicker");
Ok(())
}
fn exit(&mut self) -> anyhow::Result<()> {
println!("exit clicker");
Ok(())
}
}
impl Widget for &ClickerMode {
fn render(self, area: Rect, buf: &mut Buffer) {
Paragraph::new("CLICKER MODE").render(area.inner(MODE_MARGIN), buf);
}
}
Recorder & trainer have a similar structure.