Implemented by types that contain game state and provide logic for updating it and drawing it to the screen.
The methods on
State allow you to return a
Result, either explicitly or via the
operator. If an error is returned, the game will close and the error will be returned from
run function that was used to start it.
The error type defaults to
TetraError, but this can be overridden by adding a type parameter
State implementation (e.g.
Called when it is time for the game to update.
Called when it is time for the game to be drawn.
Called when a window or input event occurs.