pub trait Component {
// Required method
fn draw(&mut self, frame: &mut Frame<'_>, area: Rect) -> Result<()>;
// Provided methods
fn register_action_handler(
&mut self,
_tx: UnboundedSender<Action>,
) -> Result<()> { ... }
fn init(&mut self, _area: Rect) -> Result<()> { ... }
fn handle_events(&mut self, event: Option<Event>) -> Result<Option<Action>> { ... }
fn handle_key_event(&mut self, _key: KeyEvent) -> Result<Option<Action>> { ... }
fn handle_mouse_event(
&mut self,
_mouse: MouseEvent,
) -> Result<Option<Action>> { ... }
fn update(&mut self, _action: Action) -> Result<Option<Action>> { ... }
}Expand description
A visual and interactive element of the TUI.
Required Methods§
Provided Methods§
Sourcefn register_action_handler(
&mut self,
_tx: UnboundedSender<Action>,
) -> Result<()>
fn register_action_handler( &mut self, _tx: UnboundedSender<Action>, ) -> Result<()>
Register an action handler that can send actions for processing if necessary.
§Arguments
tx- An unbounded sender that can send actions.
§Returns
Result<()>- An Ok result or an error.
Sourcefn init(&mut self, _area: Rect) -> Result<()>
fn init(&mut self, _area: Rect) -> Result<()>
Initialize the component with a specified area if necessary.
§Arguments
area- Rectangular area to initialize the component within.
§Returns
Result<()>- An Ok result or an error.
Sourcefn handle_events(&mut self, event: Option<Event>) -> Result<Option<Action>>
fn handle_events(&mut self, event: Option<Event>) -> Result<Option<Action>>
Handle an incoming terminal event and produce an action if necessary.
§Arguments
event- The event to be processed, orNoneif the caller has nothing for this component this tick.
§Returns
Result<Option<Action>>- An action to be processed or none.
Sourcefn handle_key_event(&mut self, _key: KeyEvent) -> Result<Option<Action>>
fn handle_key_event(&mut self, _key: KeyEvent) -> Result<Option<Action>>
Handle key events and produce actions if necessary.
§Arguments
key- A key event to be processed.
§Returns
Result<Option<Action>>- An action to be processed or none.
Sourcefn handle_mouse_event(&mut self, _mouse: MouseEvent) -> Result<Option<Action>>
fn handle_mouse_event(&mut self, _mouse: MouseEvent) -> Result<Option<Action>>
Handle mouse events and produce actions if necessary.
§Arguments
mouse- A mouse event to be processed.
§Returns
Result<Option<Action>>- An action to be processed or none.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".