Releases: lowRISC/serde-annotate
Releases · lowRISC/serde-annotate
v0.0.12
Eliminate use of nightly feature `min_specialization`. The `min_specialization` feature is only available in nightly and doesn't seem to be making progress towards becoming a supported language feature. What is necessary to support serde-annotate is to be able to get a reference to the `dyn Annotate` implementation. With `min_specialization`, this was done by implementing a default `Annotate` for all `T: Serialize` and then specialzing `Annotate` on types with specific annotators. This generally worked, but it did cause some problems around `erased_serde::Serialize` as any type information about the type was erased. What is really required to implement annotations is to be able to look up the Annotators for a given type. The serde serializer actually helps with this: The serialize functions for structs and enums accept a `name` parameter which is the typename of the item being serialized. Instead of using `min_specialization`, we build a database mapping typenames to casting functions that can cast a pointer to the appropriate `dyn Annotate` reference. 1. Simplify the `Annotate` trait to only include the format and comment annotations. 2. Update the derive macro to only implement format/comment. Use the `inventory` crate to register the name to annotator-cast functions. 3. Update tests. Signed-off-by: Chris Frantz <frantzcj@gmail.com>
v0.0.11
v0.0.10
Release 0.0.9
Updates to various crate dependencies.
Release 0.0.8
Add a deserialize_any
implementation to handle serde(untagged)
enums.
Release 0.0.7
Update the bazel build to use crate_universe
from rules_rust
instead of cargo_raze
.