perf(codecs): avoid String allocation in proc macro type checking #19354
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.
While looking at the derive macro code, I noticed we're converting syn::Ident to String just to compare it with string literals in should_use_alt_impl(). This creates unnecessary heap allocations during macro expansion.
Since syn::Ident already implements PartialEq<&str>, we can compare directly without the .to_string().as_str() chain. This matches the pattern already used on line 155 in the same file for the "maybe_zero" check.
The change is semantically identical but skips the temporary String allocation on every type check, which should help compile times for projects with lots of Compact derives.