Persist sketch parameters across app relaunch #94
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.
BREAKING: this change adds the requirement for all sketches to implement
serde::{Serialize, Deserialize}
. To minimise the related boilerplate, new#[sketch_app]
and#[sketch_widget]
attributes are introduced—see below.This PR adds persistance of the sketch parameters across relaunches of the app. Resetting the parameters to their default is now done using the reset button (see #91).
Serialising the sketch requires it to implement the
serde::{Serialize, Deserialize}
traits. To minimise the related boilerplate (including adding serde as dependency), a new#[sketch_app]
attribute proc macro is introduced.The following code:
is now equivalent to:
The
#[serde(...)]
attribute is needed to point the derive macro at the whiskers-exported serde crate.Likewise, a new
#[sketch_widget]
attribute macro is introduced to derive theWidget
trait along with serde's.This PR is also a pre-requisite for saved configurations.