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 an integral remainder that returns
None
instead of panicking on division by zero and instead of wrapping around on underflow and overflow. - 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. - Performs addition that returns
ArithmeticError
instead of wrapping around on overflow. - Performs self addition that returns
ArithmeticError
instead of wrapping around on overflow. - Performs division that returns
ArithmeticError
instead of wrapping around on overflow. - Performs self division that returns
ArithmeticError
instead of wrapping around on overflow. - Extends
FixedPointNumber
with the Ensure family functions. - Similar to
TryFrom
but returning anArithmeticError
error. - Similar to
TryInto
but returning anArithmeticError
error. - Performs multiplication that returns
ArithmeticError
instead of wrapping around on overflow. - Performs self multiplication that returns
ArithmeticError
instead of wrapping around on overflow. - Meta trait that supports all immutable arithmetic
Ensure*
operations - Meta trait that supports all assigned arithmetic
Ensure*
operations - Performs subtraction that returns
ArithmeticError
instead of wrapping around on underflow. - Performs self subtraction that returns
ArithmeticError
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
andSaturatedInto
. - 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. - Raises a value to the power of exp, returning
ArithmeticError
if an overflow occurred.