gapp/
lib.rs

1pub trait Render<R> {
2    fn render(&self, renderer: &mut R);
3}
4
5pub trait Update {
6    fn update(&mut self, timestep: f32);
7}
8
9impl<R, T: Render<R>> Render<R> for Vec<T> {
10    fn render(&self, renderer: &mut R) {
11        for app in self {
12            app.render(renderer);
13        }
14    }
15}
16
17impl<T: Update> Update for Vec<T> {
18    fn update(&mut self, timestep: f32) {
19        for app in self {
20            app.update(timestep);
21        }
22    }
23}