[][src]Trait fixed::traits::FixedSigned

pub trait FixedSigned: Fixed + Neg<Output = Self> {
    fn is_positive(self) -> bool;
fn is_negative(self) -> bool;
fn abs(self) -> Self;
fn signum(self) -> Self;
fn checked_abs(self) -> Option<Self>;
fn checked_signum(self) -> Option<Self>;
fn saturating_abs(self) -> Self;
fn saturating_signum(self) -> Self;
fn wrapping_abs(self) -> Self;
fn wrapping_signum(self) -> Self;
fn overflowing_abs(self) -> (Self, bool);
fn overflowing_signum(self) -> (Self, bool); }

This trait provides methods common to all signed fixed-point numbers.

Methods common to all fixed-point numbers including unsigned fixed-point numbers are provided by the Fixed supertrait.

This trait is sealed and cannot be implemented for more types; it is implemented for FixedI8, FixedI16, FixedI32, FixedI64, and FixedI128.

Required methods

fn is_positive(self) -> bool

Returns true if the number is > 0.

fn is_negative(self) -> bool

Returns true if the number is < 0.

fn abs(self) -> Self

Returns the absolute value.

fn signum(self) -> Self

Returns a number representing the sign of self.

Panics

When debug assertions are enabled, this method panics

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.

When debug assertions are not enabled, the wrapped value can be returned in those cases, but it is not considered a breaking change if in the future it panics; using this method when 1 and −1 cannot be represented is almost certainly a bug.

fn checked_abs(self) -> Option<Self>

Checked absolute value. Returns the absolute value, or None on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

fn checked_signum(self) -> Option<Self>

Checked signum. Returns a number representing the sign of self, or None on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.

fn saturating_abs(self) -> Self

Saturating absolute value. Returns the absolute value, saturating on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

fn saturating_signum(self) -> Self

Saturating signum. Returns a number representing the sign of self, saturating on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.

fn wrapping_abs(self) -> Self

Wrapping absolute value. Returns the absolute value, wrapping on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

fn wrapping_signum(self) -> Self

Wrapping signum. Returns a number representing the sign of self, wrapping on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.

fn overflowing_abs(self) -> (Self, bool)

Overflowing absolute value.

Returns a tuple of the fixed-point number and a bool, indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

fn overflowing_signum(self) -> (Self, bool)

Overflowing signum.

Returns a tuple of the signum and a bool, indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.
Loading content...

Implementors

impl<Frac: LeEqU128> FixedSigned for FixedI128<Frac>[src]

impl<Frac: LeEqU16> FixedSigned for FixedI16<Frac>[src]

impl<Frac: LeEqU32> FixedSigned for FixedI32<Frac>[src]

impl<Frac: LeEqU64> FixedSigned for FixedI64<Frac>[src]

impl<Frac: LeEqU8> FixedSigned for FixedI8<Frac>[src]

Loading content...