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.
Motivation
Currently floats cannot be logged/recorded other than in Debug or Display format which ends up stringifying them on output.
Simple Example:
results in:
And won't compile if passed the float directly:
Log ingesting/processing tools (eg Datadog/ELK etc) cannot parse these float strings without custom rules for each field to try and coerce the outputted string into the appropriate type, which is required in order to generate metrics etc.
This resolves issue mentioned in the Tokio Discord a few times and #726
Solution
In order to implement I have added the relevant record_64 functions.
However, in order to get it working I had to comment out the
impl_one_value!(nonzero, ...)
macro.I don't currently understand the benefits of the implementation (why it is needed), or how to avoid it causing conflict with the float implementation.
Before I write/fix the tests for the implementation/remove current NonZero failing test, if a reviewer could explain why it is needed and offer pointers as to how to work around it, or green light its removal it would be much appreciated 🙏