Split whiskers widgets in their own whiskers-widgets
crate
#108
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.
The PR makes it possible for
vsvg
to use theWidget
derive macro on its own types.So far, the
Widget
trait for somevsvg
types (such asPoint
,Unit
,Length
, etc.) was implemented within thewhiskers
crate. This is ok for manual implementation, but this would make it impossible to use theWidget
derive macro because that would cause a circular dependency between thewhiskers
andvsvg
crate.This PR addresses this issue by splitting all widget traits and code into a separate
whiskers-widgets
crate, on which bothwhiskers
and, optionally,vsvg
depend. This is gated behind thewhiskers-widgets
feature ofvsvg
.This PR also:
vsvg
the widget code forvsvg
types,vsvg_viewer
tovsvg
(gated behind theegui
feature),whisker
towhiskers-widgets
.This is the resulting dependency graph:
Note that whiskers reexport everything needed in
whiskers::prelude::*
so no other dependency/use
statement is typically needed for user sketches.TODO: