This repository has been archived by the owner on May 27, 2022. It is now read-only.
[Feature Request] Improved tracing algorithm in serde_reflection::trace_type #104
Labels
enhancement
New feature or request
🚀 Feature Request
serde_reflection::trace_type
relies on a few ideas and heuristics that it might be time to revisit.Notably, we use the current table of formats
tracer.registry
to guide the tracing in most decision points -- with the exception oftracer.incomplete_enums
that is also used to decide how to trace enum variants.This approach was a natural starting point but it is not ideal in the long run for a few reasons:
trace_value
beforetrace_type
may update the registry in an incomplete way and defeat further tracing withtrace_type
.trace_type_once<T>
repeatedly and hope to make progress in finding variants that are deeper thatT
. (For instance, after one tracing call onstruct T(option<S>)
we are not going to look intoS
ever again because it has a format: https://github.com/novifinancial/serde-reflection/blob/master/serde-reflection/src/de.rs#L199)The text was updated successfully, but these errors were encountered: