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: impl Into>, ) -> Result<(), error::LintuiniError>; fn children(&self) -> &[Box]; fn children_mut(&mut self) -> &mut [Box]; }