Added Sensible Default ggrs::Config
type GgrsConfig
#73
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
In the
box_game
example, there's a to-do related toggrs::Config
:Solution
I've solved this to-do by creating a type
GgrsConfig
:Because
GgrsConfig
is a concrete type, it is allowed to have defaults for the type parametersInput
,State
, andAddress
required byggrs::Config
. As mentioned in thebox_game
example,u8
forState
is already taken as a default (sinceState
is unused in Bevy). I also took the liberty of settingAddress
toSocketAddr
as I believe that is the most common type that will be used by end users. These defaults allow the example game to use:I show a type definition here, as I suspect end users would prefer this option for the sake of brevity. Because this is all done through the addition of a simple zero-sized-type, all existing applications can continue using their custom
Config
types if they want, with no breaking changes.