Don't treat signals as floats if factor is a whole number #60
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.
Before this change, any signal with
offset != 0.0
andfactor != 1.0
would be represented as a float in the generated Rust.This change checks if factor and offset are integers. If so, the generated rust type is set to the smallest integer type that fits the value (accounting for offset and factor).
So a signal like this (8 bits, factor=2, offset=13) would be a u16:
Unresolved Questions
Currently they willl always be truncated to fit in a u64
How to handle invalid values provided toset_<signal>
methods.I.e., what should happen if you provide0
to a signed integer signal with offset1
.