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