1 unstable release
0.1.0 | May 1, 2023 |
---|
#1580 in Math
Used in vectorial
29KB
647 lines
ext-ops
Copyright (c) 2023 Martin Mills [daggerbot@gmail.com]
General purpose arithmetic operator traits for Rust which are missing from the standard library.
The name ext-ops
is short for "extension operators."
This crate is intended to address shortcomings in parts of the num-traits
crate:
- The
Try*
traits provided byext-ops
return aResult
instead of anOption
, so arithmetic errors can be propagated with the?
operator. ext-ops
traits do not require operands to be references. This allows for optimizations that may not be possible usingnum-traits
, such as consuming aBigInt
operand instead of constructing a new one.ext-ops
traits do not have trait constraints. For example,TryAdd
can be implemented for a type that does not implementAdd
.
At the time of writing, some expected traits may not be implemented for some types or even defined at all. This is because it has not yet been decided which of multiple possible behaviors is best. Feel free to open an issue if something you desire is missing.