pub mod controller;
pub mod display;
pub mod editor;
pub mod framebuffer;
pub mod memory;
pub mod registers;
pub mod serial;

pub trait Component {
    /// The tab label shown in the tile header.
    fn title(&self) -> &str;

    fn visible(&mut self) -> &mut bool;

    /// Draw the component's UI inside the provided `Ui`.
    fn ui(&mut self, ui: &mut egui::Ui, ctx: &egui::Context);
}
