# 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*`

operationsMeta trait that supports all assigned arithmetic

`Ensure*`

operationsPerforms 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.