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.
Currently euclid can build in a no-std environment only if the libm feature is enabled. As a result, downstream crates that want to support no-std have to either add a libm feature or force the libm dependency even in the default std configuration.
There are users of euclid that don't need the float math functionality that is provided by std/libm, For example
etagere
andguillotiere
that mostly use the types in their public API and some simple rectangle functionality that doesn't require libm.This PR aims to address that by sprinkling
#[cfg(any(feature = "std", feature = "libm"))]
until euclid builds with--no-default-features
.It isn't super pretty, but it's simple to review and can be easily followed up with a patch that consolidates all of these
#[cfg]
into a single per type in front of an impl block for all of the functions that need libm/std.