use core::future; use alloc::vec::Vec; use embedded_graphics::pixelcolor::Rgb565; use embedded_graphics::prelude::RgbColor; use embedded_graphics_core::draw_target::DrawTarget; use crate::{ card::model::Card, navigation::navigation::{Action, Navigable, NewState}, views::view::View, }; #[derive(Debug, Clone)] pub struct JournalView { pub cards: Vec, pub selected_card: usize, } impl Navigable for JournalView { fn display(&self, display: &mut D) -> impl core::future::Future + Send where D: DrawTarget, D::Error: core::fmt::Debug, { display.clear(Rgb565::BLACK).unwrap(); core::future::ready(()) } fn handle_input(&self, input: Action) -> impl core::future::Future + Send { let new_state = NewState { view: View::Journal(self.clone()), replace_view: true, redraw: !matches!(input, Action::Timer), }; future::ready(new_state) } }