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.