pub trait Timeline<'res> {
// Required methods
fn current_time(&self) -> f32;
fn seek(&mut self, time: f32);
fn state(&self) -> &TimelineState;
fn start(&mut self);
fn forward(&mut self);
fn pause(&mut self);
fn actions(&self) -> &Vec<Action<'res>>;
fn actions_mut(&mut self) -> &mut Vec<Action<'res>>;
fn add_action(&mut self, action: Action<'res>);
// Provided methods
fn all_stopped(&self) -> bool { ... }
fn process(&mut self) { ... }
}