pub trait Widget {
// Required methods
fn draw(&mut self, fb: &mut Box<dyn Bitmap + 'static>);
fn event(&mut self, event: Event, handler: &mut Handler);
fn backend(&mut self) -> &mut Backend;
// Provided method
fn init(&mut self) { ... }
}