Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
444 B
Rust
25 lines
444 B
Rust
use core::fmt::Debug;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Error, Debug)]
|
|
#[error("error")]
|
|
struct Error<'a>(#[from] Inner<'a>);
|
|
|
|
#[derive(Error, Debug)]
|
|
#[error("{0}")]
|
|
struct Inner<'a>(&'a str);
|
|
|
|
#[derive(Error, Debug)]
|
|
enum Enum<'a> {
|
|
#[error("error")]
|
|
Foo(#[from] Generic<&'a str>),
|
|
}
|
|
|
|
#[derive(Error, Debug)]
|
|
#[error("{0:?}")]
|
|
struct Generic<T: Debug>(T);
|
|
|
|
fn main() -> Result<(), Error<'static>> {
|
|
Err(Error(Inner("some text")))
|
|
}
|