pub trait Widget {
// Required methods
fn render(&self) -> Paragraph<'_>;
fn handle_input(&mut self, key: KeyEvent) -> Option<String>;
// Provided method
fn as_input_state(&mut self) -> Option<&mut dyn InputWidget> { ... }
}pub trait Widget {
// Required methods
fn render(&self) -> Paragraph<'_>;
fn handle_input(&mut self, key: KeyEvent) -> Option<String>;
// Provided method
fn as_input_state(&mut self) -> Option<&mut dyn InputWidget> { ... }
}