1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
pub trait Draw { fn draw(&self); } // ANCHOR: here pub struct Screen<T: Draw> { pub components: Vec<T>, } impl<T> Screen<T> where T: Draw, { pub fn run(&self) { for component in self.components.iter() { component.draw(); } } } // ANCHOR_END: here