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
miniconfis 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-reflectionvery useful for this (thanks!).We implement the
trace_value/trace_typefunctionality inTracerusing our intermediateminiconf::TreeSerialize/TreeDeserializetraits. See below for what that looks like.For
trace_valueandtrace_type_oncewe would likeSerializerandDeserializerto bepub. Happy to split that out of this PR if it's uncontroversial.For
trace_typewe also need a way to mark the top level enum inincomplete_enumsbefore tracing again (seetrace_type).Test Plan
Code: https://github.com/quartiq/miniconf/blob/898c4222cc83574c8db44dfe7f63e318736af6ef/miniconf/examples/trace.rs#L131-L173