Fix formating of Arg::Ixx based integer hex values #646
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.
This PR solves #632, it formats signed integers as hex values based on their given type, instead of formating it using a
i128
based value.Before this change the following log code:
produced the output:
After the change the decoder takes the initial integer type into account when formating integer based hex values, the output is now:
The reason is that the decoder parsed all integer values as either
Arg::Ixx
orArg::Uxx
variants with the biggest data type to store the value in (i128
&u128
), while keeping the original type information in a separateParameter
as part of theFrame
.The change now passes the integer type information to function
Frame::format_i128
. The new helper structHex128
implements both theLowerHex
andUpperHex
traits by delegating the call to the appropriate underlying type implementation.log
to output a number of different hex values