Implemented by all events.
Use this trait when you need to handle events, e.g.
fn event(&mut self, e: &impl GenericEvent).
Events are usually handles by controllers (in the Model-View-Controller programming pattern).
There is no requirement that you need to implement some trait for controllers,
just that the standard convention for handling events is through a
For more information about Model-View-Controller, see Wikipedia article.
This trait makes it possible to auto impl new events for all types that implements
This way, you can define your own event types without breaking compatibility with Piston.
The id of this event.
Calls closure with arguments
fn time_stamp(&self) -> Option<u32>
Gets the time stamp of this event.
Measured in milliseconds since initialization of window.