Make Debug impl for newtypes passthrough to inner type #77
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.
kafka-protocol has generated newtypes, which wrap integers and strings to give some extra type safety.
For example:
Currently the Debug impl for these types is derived by
#[derive(Debug)]
.This results in debug output like:
This PR changes the debug output to instead directly display the type:
This should result in more concise logs.
Here are some example usages:
Alternatives
As an alternative we could implement
Display
to skip the newtype name.But in the case of a string type Display should not have quotes and Debug should be wrapped in quotes.
So I don't think this is appropriate for logs where we need to clearly show where a name begins and ends.
e.g.
tracing::log("the group {group} hit an issue")
could output:
the group did not hit an issue
For this reason I dont think the string newtypes should implement Display at all, if the user really wants to they can get the inner type and display that.