Prevent unnecessary runtime validation for newtype generated macros #331
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.
Adjusts the newtype generated compile-time validation macros so that they don't perform redundant validation at runtime, given that the value was already validated at compile time.
In cases where only compile-time validation is being performed (for example
exec.d
scripts), this results in significant reduction in binary size (1.7MB -> 0.4MB in a release+stripped binary), due to no longer needing thefancy-regex
dependency at runtime.A
new_unchecked()
method was added, so that the types (whose backing string is intentionally private) can be constructed by the code generated by the macro (which will exist outside of the module). The name was based on:https://doc.rust-lang.org/std/index.html?search=new_unchecked
Fixes #330.
GUS-W-10727850.