pub(super) mod pages; pub(super) mod widgets; use std::collections::VecDeque; use g13_driver::{G13, G13Event}; use crate::app::pages::StartPage; use super::app::pages::Page; pub struct App { pages: VecDeque>>, } impl App { pub fn new() -> Self { let mut pages: VecDeque>> = VecDeque::new(); pages.push_back(Box::new(StartPage::new())); Self { pages } } pub fn update(&mut self, event: G13Event) { if let Some(last_page) = self.pages.iter_mut().last() { last_page.update(event); } } pub fn draw(&mut self, display: &mut G13) { if let Some(last_page) = self.pages.iter_mut().last() { last_page.draw(display); } } }