Comments (2)
Yeah, understandable.
Actually, I was in a little bit of trouble when posting this: at the time there is no way to use any casting functionality (even integer to fixed of vice versa) and it required something like 10+ different casting functions to cover all types in my case. Such setup felt very cumbersome and annoying. But then after glancing through itertools
docs another time I suddenly realized: you can use traits not only to generalize/abstract over APIs, but also to extend it. I guess I'll count it as learning experience :)
Now with this in mind, I would say it makes most sense to create an interoperability crate for the two which will provide traits with conversion functions instead of pushing change into euclid
itself.
Anyways I'm closing the issue.
from euclid.
I'm a bit reticent to adding a dependency to euclid because a lot of euclid's users are pretty vocal about having as few dependencies as possible. The other reason is that euclid breaking changes cause a lot of downstream crates to have to update and publish a breaking release as well which we try to avoid as much as possible.
az
looks small, is no_std and hasn't changed in a while so depending on it is not out of the question if the motivation is really strong. Since it is only for the casting methods and we haven't heard from other users of euclid with fixed
, I would prefer to let users make helper functions outside euclid for casts with numbers that aren't covered by NumTraits.
from euclid.
Related Issues (20)
- Scale::inverse negates the scale instead of inversing it. HOT 1
- Why cloned scale is used only for the first coordinate? HOT 1
- Rect::intersection should return None in the presence of NaN.
- (breaking change) self vs &self and non-copy scalars HOT 5
- Fails to compile with --no-default-features HOT 2
- Vector missing the Sum trait HOT 3
- Constructors: splat, one HOT 3
- Component-wise multiplication for Vector2 HOT 2
- Component-wise division for Vector2 HOT 2
- Support for bytemuck Pod and Zeroable HOT 2
- Distinguish between orientation and rotation.
- missing `AddAssign` impl for `SideOffsets2D` HOT 1
- Add tags for releases on crates.io HOT 1
- Implement more `num-traits` (e.g. checked arithmetic) HOT 2
- Poor accuracy in Vector2D::angle_from_x_axis HOT 1
- Scale `mod`, `div` by scalar HOT 3
- Unresolved Import `num_traits::Euclid` HOT 3
- Box inclusive contains HOT 7
- Point2D/Point3D missing Add<Point2D<T, U>> impl HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from euclid.