pub mod prelude;
pub mod clock;
pub mod info;
pub mod app;
pub mod mwatch;
pub mod uop;
pub mod notifications;
use prelude::*;
use crate::system::{System, input::InputEvent, Display};
pub trait State: Default {
fn render(&mut self, system: &mut impl System, display: &mut impl Display) -> Option<Signal>;
fn input(&mut self, system: &mut impl System, input: InputEvent) -> Option<Signal>;
}
pub trait StaticState: State {}
pub trait ScopedState: State {
fn preview(&mut self, system: &mut impl System, display: &mut impl Display) -> Option<Signal>;
fn start(&mut self, system: &mut impl System);
fn is_running(&self, system: &mut impl System) -> bool;
fn stop(&mut self, system: &mut impl System);
}