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 an ArithmeticError error.
Similar to TryInto but returning an ArithmeticError 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 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.
Raises a value to the power of exp, returning ArithmeticError if an overflow occurred.