use ratatui_core::layout; use ratatui_core::terminal::Frame; use crate::error; pub trait Element { fn constraint(&self) -> &layout::Constraint; fn render(&self, frm: &mut Frame, rect: layout::Rect) -> Result<(), error::LintuiniError>; } pub trait ElementWithChildren: Element { fn add_child(&mut self, child: Box) -> Result<(), error::LintuiniError>; fn children(&self) -> &[Box]; fn children_mut(&mut self) -> &mut [Box]; }