Trait FixedPoint

Source
pub trait FixedPoint: Sized + Copy {
    type T: TimeInt;

    const SCALING_FACTOR: Fraction;

    // Required method
    fn integer(&self) -> Self::T;

    // Provided methods
    fn checked_mul(&self, rhs: &Self::T) -> Option<Self> { ... }
    fn checked_div(&self, rhs: &Self::T) -> Option<Self> { ... }
    fn min_value() -> Self::T { ... }
    fn max_value() -> Self::T { ... }
}
Expand description

Fixed-point value type

QX.32 where X: bit-width of T

Required Associated Constants§

Source

const SCALING_FACTOR: Fraction

The fractional scaling factor

Required Associated Types§

Source

type T: TimeInt

The integer (magnitude) type

Required Methods§

Source

fn integer(&self) -> Self::T

Returns the integer part of the FixedPoint value

assert_eq!(Hertz(45_u32).integer(), 45_u32);

Provided Methods§

Source

fn checked_mul(&self, rhs: &Self::T) -> Option<Self>

Multiply with overflow checking

Source

fn checked_div(&self, rhs: &Self::T) -> Option<Self>

Multiply with overflow checking

Source

fn min_value() -> Self::T

Returns the minimum integer value

Source

fn max_value() -> Self::T

Returns the maximum integer value

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: TimeInt> FixedPoint for Hours<T>

Source§

impl<T: TimeInt> FixedPoint for Microseconds<T>

Source§

impl<T: TimeInt> FixedPoint for Milliseconds<T>

Source§

impl<T: TimeInt> FixedPoint for Minutes<T>

Source§

impl<T: TimeInt> FixedPoint for Nanoseconds<T>

Source§

impl<T: TimeInt> FixedPoint for Seconds<T>

Source§

impl<T: TimeInt> FixedPoint for Baud<T>

Source§

impl<T: TimeInt> FixedPoint for BitsPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for BytesPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for Centihertz<T>

Source§

impl<T: TimeInt> FixedPoint for Decihertz<T>

Source§

impl<T: TimeInt> FixedPoint for Hertz<T>

Source§

impl<T: TimeInt> FixedPoint for Kibibaud<T>

Source§

impl<T: TimeInt> FixedPoint for KibibitsPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for KibibytesPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for Kibihertz<T>

Source§

impl<T: TimeInt> FixedPoint for Kilobaud<T>

Source§

impl<T: TimeInt> FixedPoint for KilobitsPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for KilobytesPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for Kilohertz<T>

Source§

impl<T: TimeInt> FixedPoint for Mebibaud<T>

Source§

impl<T: TimeInt> FixedPoint for MebibitsPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for MebibytesPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for Mebihertz<T>

Source§

impl<T: TimeInt> FixedPoint for Megabaud<T>

Source§

impl<T: TimeInt> FixedPoint for MegabitsPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for MegabytesPerSecond<T>

Source§

impl<T: TimeInt> FixedPoint for Megahertz<T>

Source§

impl<T: TimeInt> FixedPoint for Microhertz<T>

Source§

impl<T: TimeInt> FixedPoint for Millihertz<T>