pub trait Hardware {
type Display: Display;
type Timer: Timer;
type Input: Input;
// Required methods
fn display(&mut self) -> &mut Self::Display;
fn timer(&mut self) -> &mut Self::Timer;
fn input(&mut self) -> &mut Self::Input;
}