Add units module to allow for type checked conversions [DRAFT] #375
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.
Summary
This would add a new units module to Nyx where we can specify units, and their conversions. The idea being that in places where we have constructors which look like
fn new_mass(mass_kg: f64)
we could change them to befn new_mass(mass: impl Into<Kilograms>)
.Additionally by defining explicit types for mass, length, etc. we avoid potential errors internally from adding a mass and a length, for example.
This would be a large and breaking change, so if it is not aligned with the goals of Nyx that is understandable.
Architectural Changes
New units module
New Features
No change
Improvements
No change
Bug Fixes
No change
Testing and validation
TODO
Documentation
This PR does not primarily deal with documentation changes.