Trait sp_runtime::FixedPointNumber [−][src]
pub trait FixedPointNumber: Copy + Default + Debug + Saturating + Bounded + Eq + PartialEq<Self> + Ord + PartialOrd<Self> + CheckedSub + CheckedAdd + CheckedMul + CheckedDiv + Add<Self> + Sub<Self> + Div<Self> + Mul<Self> + Zero + One { type Inner: Debug + One + CheckedMul + CheckedDiv + FixedPointOperand; const DIV: Self::Inner; const SIGNED: bool;}Show methods
fn from_inner(int: Self::Inner) -> Self; fn into_inner(self) -> Self::Inner; fn accuracy() -> Self::Inner { ... } fn saturating_from_integer<N>(int: N) -> Self
where
N: FixedPointOperand, { ... } fn checked_from_integer(int: Self::Inner) -> Option<Self> { ... } fn saturating_from_rational<N, D>(n: N, d: D) -> Self
where
D: FixedPointOperand,
N: FixedPointOperand, { ... } fn checked_from_rational<N, D>(n: N, d: D) -> Option<Self>
where
D: FixedPointOperand,
N: FixedPointOperand, { ... } fn checked_mul_int<N>(self, n: N) -> Option<N>
where
N: FixedPointOperand, { ... } fn saturating_mul_int<N>(self, n: N) -> N
where
N: FixedPointOperand, { ... } fn checked_div_int<N>(self, d: N) -> Option<N>
where
N: FixedPointOperand, { ... } fn saturating_div_int<N>(self, d: N) -> N
where
N: FixedPointOperand, { ... } fn saturating_mul_acc_int<N>(self, n: N) -> N
where
N: FixedPointOperand, { ... } fn saturating_abs(self) -> Self { ... } fn reciprocal(self) -> Option<Self> { ... } fn is_one(&self) -> bool { ... } fn is_positive(self) -> bool { ... } fn is_negative(self) -> bool { ... } fn trunc(self) -> Self { ... } fn frac(self) -> Self { ... } fn ceil(self) -> Self { ... } fn floor(self) -> Self { ... } fn round(self) -> Self { ... }
Expand description
Re-export top-level arithmetic stuff. Something that implements a decimal fixed point number.
The precision is given by Self::DIV, i.e. 1 / DIV can be represented.
Each type can store numbers from Self::Inner::min_value() / Self::DIV
to Self::Inner::max_value() / Self::DIV.
This is also referred to as the accuracy of the type in the documentation.
Associated Types
type Inner: Debug + One + CheckedMul + CheckedDiv + FixedPointOperand
type Inner: Debug + One + CheckedMul + CheckedDiv + FixedPointOperandThe underlying data type used for this fixed point number.
Associated Constants
Precision of this fixed point implementation. It should be a power of 10.
Required methods
fn from_inner(int: Self::Inner) -> Self
fn from_inner(int: Self::Inner) -> SelfBuilds this type from an integer number.
fn into_inner(self) -> Self::Inner
fn into_inner(self) -> Self::InnerConsumes self and returns the inner raw value.
Provided methods
fn saturating_from_integer<N>(int: N) -> Self where
N: FixedPointOperand,
fn saturating_from_integer<N>(int: N) -> Self where
N: FixedPointOperand, Creates self from an integer number int.
Returns Self::max or Self::min if int exceeds accuracy.
fn checked_from_integer(int: Self::Inner) -> Option<Self>
fn checked_from_integer(int: Self::Inner) -> Option<Self>Creates self from an integer number int.
Returns None if int exceeds accuracy.
fn saturating_from_rational<N, D>(n: N, d: D) -> Self where
D: FixedPointOperand,
N: FixedPointOperand,
fn saturating_from_rational<N, D>(n: N, d: D) -> Self where
D: FixedPointOperand,
N: FixedPointOperand, Creates self from a rational number. Equal to n / d.
Panics if d = 0. Returns Self::max or Self::min if n / d exceeds accuracy.
fn checked_from_rational<N, D>(n: N, d: D) -> Option<Self> where
D: FixedPointOperand,
N: FixedPointOperand,
fn checked_from_rational<N, D>(n: N, d: D) -> Option<Self> where
D: FixedPointOperand,
N: FixedPointOperand, Creates self from a rational number. Equal to n / d.
Returns None if d == 0 or n / d exceeds accuracy.
fn checked_mul_int<N>(self, n: N) -> Option<N> where
N: FixedPointOperand,
fn checked_mul_int<N>(self, n: N) -> Option<N> where
N: FixedPointOperand, Checked multiplication for integer type N. Equal to self * n.
Returns None if the result does not fit in N.
fn saturating_mul_int<N>(self, n: N) -> N where
N: FixedPointOperand,
fn saturating_mul_int<N>(self, n: N) -> N where
N: FixedPointOperand, Saturating multiplication for integer type N. Equal to self * n.
Returns N::min or N::max if the result does not fit in N.
fn checked_div_int<N>(self, d: N) -> Option<N> where
N: FixedPointOperand,
fn checked_div_int<N>(self, d: N) -> Option<N> where
N: FixedPointOperand, Checked division for integer type N. Equal to self / d.
Returns None if the result does not fit in N or d == 0.
fn saturating_div_int<N>(self, d: N) -> N where
N: FixedPointOperand,
fn saturating_div_int<N>(self, d: N) -> N where
N: FixedPointOperand, Saturating division for integer type N. Equal to self / d.
Panics if d == 0. Returns N::min or N::max if the result does not fit in N.
fn saturating_mul_acc_int<N>(self, n: N) -> N where
N: FixedPointOperand,
fn saturating_mul_acc_int<N>(self, n: N) -> N where
N: FixedPointOperand, Saturating multiplication for integer type N, adding the result back.
Equal to self * n + n.
Returns N::min or N::max if the multiplication or final result does not fit in N.
fn saturating_abs(self) -> Self
fn saturating_abs(self) -> SelfSaturating absolute value.
Returns Self::max if self == Self::min.
fn reciprocal(self) -> Option<Self>
fn reciprocal(self) -> Option<Self>Takes the reciprocal (inverse). Equal to 1 / self.
Returns None if self = 0.
fn is_positive(self) -> bool
fn is_positive(self) -> boolReturns true if self is positive and false if the number is zero or negative.
fn is_negative(self) -> bool
fn is_negative(self) -> boolReturns true if self is negative and false if the number is zero or positive.
Returns the fractional part.
Note: the returned fraction will be non-negative for negative numbers, except in the case where the integer part is zero.
Returns the smallest integer greater than or equal to a number.
Saturates to Self::max (truncated) if the result does not fit.
Returns the largest integer less than or equal to a number.
Saturates to Self::min (truncated) if the result does not fit.