Module sp_arithmetic::traits
source · [−]Expand description
Primitive traits for the runtime arithmetic.
Traits
A meta trait for arithmetic.
A meta trait for arithmetic. Same as AtLeast32Bit
, but also bounded to be unsigned.
A meta trait for arithmetic type operations, regardless of any limitation on size.
Numbers which have upper and lower bounds
Performs addition that returns None
instead of wrapping around on
overflow.
Performs division that returns None
instead of panicking on division by zero and instead of
wrapping around on underflow and overflow.
Performs multiplication that returns None
instead of wrapping around on underflow or
overflow.
Performs negation that returns None
if the result can’t be represented.
Performs a left shift that returns None
on shifts larger than
the type width.
Performs a right shift that returns None
on shifts larger than
the type width.
Performs subtraction that returns None
instead of wrapping around on underflow.
A trait implementing integer square root.
Defines a multiplicative identity element for Self
.
Convenience type to work around the highly unergonomic syntax needed
to invoke the functions of overloaded generic traits, in this case
SaturatedFrom
and SaturatedInto
.
Saturating arithmetic operations, returning maximum or minimum values instead of overflowing.
Useful functions for signed numbers (i.e. numbers that can be negative).
Just like From
except that if the source value is too big to fit into the destination type
then it’ll saturate the destination.
Just like Into
except that if the source value is too big to fit into the destination type
then it’ll saturate the destination.
A trait for values which cannot be negative
Defines an additive identity element for Self
.
Functions
Raises a value to the power of exp, returning None
if an overflow occurred.