Trait Component

Source
pub trait Component {
    // Required method
    fn draw(&mut self, f: &mut Frame<'_>, area: Rect) -> Result<()>;

    // Provided methods
    fn register_action_handler(
        &mut self,
        tx: UnboundedSender<Action>,
    ) -> Result<()> { ... }
    fn register_config_handler(&mut self, config: Config) -> Result<()> { ... }
    fn init(&mut self, _area: Rect) -> Result<()> { ... }
    fn handle_events(&mut self, event: Option<Event>) -> Result<Vec<Action>> { ... }
    fn handle_key_events(&mut self, key: KeyEvent) -> Result<Vec<Action>> { ... }
    fn handle_mouse_events(&mut self, mouse: MouseEvent) -> Result<Vec<Action>> { ... }
    fn update(&mut self, action: Action) -> Result<Option<Action>> { ... }
}
Expand description

Component is a trait that represents a visual and interactive element of the user interface. Implementors of this trait can be registered with the main application loop and will be able to receive events, update state, and be rendered on the screen.

Required Methods§

Source

fn draw(&mut self, f: &mut Frame<'_>, area: Rect) -> Result<()>

Render the component on the screen. (REQUIRED)

§Arguments
  • f - A frame used for rendering.
  • area - The area in which the component should be drawn.
§Returns
  • Result<()> - An Ok result or an error.

Provided Methods§

Source

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.
Source

fn register_config_handler(&mut self, config: Config) -> Result<()>

Register a configuration handler that provides configuration settings if necessary.

§Arguments
  • config - Configuration settings.
§Returns
  • Result<()> - An Ok result or an error.
Source

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.
Source

fn handle_events(&mut self, event: Option<Event>) -> Result<Vec<Action>>

Handle incoming events and produce actions if necessary.

§Arguments
  • event - An optional event to be processed.
§Returns
  • Result<Option<Action>> - An action to be processed or none.
Source

fn handle_key_events(&mut self, key: KeyEvent) -> Result<Vec<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.
Source

fn handle_mouse_events(&mut self, mouse: MouseEvent) -> Result<Vec<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.
Source

fn update(&mut self, action: Action) -> Result<Option<Action>>

Update the state of the component based on a received action. (REQUIRED)

§Arguments
  • action - An action that may modify the state of the component.
§Returns
  • Result<Option<Action>> - An action to be processed or none.

Implementors§