Make Serializer
and Deserializer
pub
and expose incomplete_enum
mechanism
#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.
Summary
miniconf
is a library we use to access (get/set over serial, mqtt, store in flash) settings on embedded devices. It is aserde
-based hierarchical heterogeneous key-value access mechanism.We'd like to generate a schema for the settings trees and found
serde-reflection
very useful for this (thanks!).We implement the
trace_value
/trace_type
functionality inTracer
using our intermediateminiconf::TreeSerialize
/TreeDeserialize
traits. See below for what that looks like.For
trace_value
andtrace_type_once
we would likeSerializer
andDeserializer
to bepub
. Happy to split that out of this PR if it's uncontroversial.For
trace_type
we also need a way to mark the top level enum inincomplete_enums
before tracing again (seetrace_type
).Test Plan
Code: https://github.com/quartiq/miniconf/blob/898c4222cc83574c8db44dfe7f63e318736af6ef/miniconf/examples/trace.rs#L131-L173