[−][src]Trait fixed::traits::FixedSigned
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
.
Associated Types
type Unsigned: FixedUnsigned
An unsigned fixed-point number type with the same number of
integer and fractional bits as Self
.
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 unsigned_abs(self) -> Self::Unsigned
Returns the absolute value using an unsigned type without any wrapping or panicking.
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 unwrapped_abs(self) -> Self
Unwrapped absolute value. Returns the absolute value, panicking on overflow.
Overflow can only occur when trying to find the absolute value of the minimum value.
Panics
Panics if the result does not fit.
fn unwrapped_signum(self) -> Self
Unwrapped signum. Returns a number representing the sign of
self
, panicking 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.
Panics
Panics if the result does not fit.
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.