Stop instantiating parse_value in MapKey::deserialize_any #388
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 parse_value method is the most expensive method in serde_json in terms of compile time. Before this change, we were instantiating it twice for every derive(Deserialize) struct because every struct has two different Visitor impls -- one for the key type and one for the struct overall -- see https://serde.rs/deserialize-struct.html.
This improves compile time of json-benchmark in release mode by 20%. #313