use std::io::{self, Stdout};
use super::utils::{Action, RenderWidget};
pub trait Widget {
fn render(&mut self, stdout: &mut Stdout) -> io::Result<()>;
}
pub trait WidgetRoot {
fn render(&mut self, _stdout: &mut Stdout) -> io::Result<()> {
loop {
todo!()
}
}
}
pub trait WidgetChild<T: Clone>: Widget {
fn before_render(&mut self, global_state: T) -> RenderWidget;
fn after_render(&mut self, global_state: T) -> Action;
}