use crate::*; pub struct Layered<'a>(Collection<'a>); impl<'a> Layered<'a> { pub fn new () -> Self { Self(Collection::new()) } } impl<'a> Render for Layered<'a> { fn render (&self, buf: &mut Buffer, area: Rect) -> Usually { for layer in self.0.0.iter() { layer.render(buf, area)?; } Ok(area) } } impl<'a> Collect<'a> for Layered<'a> { fn add_box (mut self, item: Box) -> Self { self.0 = self.0.add_box(item); self } fn add_ref (mut self, item: &'a dyn Render) -> Self { self.0 = self.0.add_ref(item); self } }