rktk/drivers/interface/
display.rs1use display_interface::DisplayError;
2use embedded_graphics::prelude::*;
3
4pub trait DisplayDriver: 'static {
8 type Color: PixelColor;
9 type Display: DrawTarget<Color = Self::Color>;
10
11 fn draw_target(&mut self) -> &mut Self::Display;
12
13 async fn init(&mut self) -> Result<(), DisplayError> {
21 Ok(())
22 }
23
24 async fn flush(&mut self) -> Result<(), DisplayError> {
25 Ok(())
26 }
27
28 async fn clear(&mut self) -> Result<(), DisplayError> {
30 Ok(())
31 }
32
33 async fn set_brightness(&mut self, _brightness: u8) -> Result<(), DisplayError> {
37 Err(DisplayError::DataFormatNotImplemented)
38 }
39
40 async fn set_display_on(&mut self, on: bool) -> Result<(), DisplayError> {
41 if on { self.set_brightness(255).await } else { self.set_brightness(0).await }
42 }
43}