[][src]Struct embedded_time::Period

pub struct Period<T = i32>(_);

A fractional time period

Used primarily to define the period of one count of a crate::Duration type

Implementations

impl<T> Period<T>[src]

pub const fn new(numerator: T, denominator: T) -> Self[src]

Construct a new fractional Period.

A reduction is not performed.

pub const fn numerator(&self) -> &T[src]

Return the numerator of the fraction

pub const fn denominator(&self) -> &T[src]

Return the denominator of the fraction

impl<T: TimeInt> Period<T>[src]

pub fn new_reduce(numerator: T, denominator: T) -> Self[src]

Construct a new fractional Period.

A reduction is performed.

pub fn to_frequency(&self) -> Hertz<T>[src]

Returns a frequency in Hertz from the Period

pub fn from_frequency(freq: Hertz<T>) -> Self[src]

Constructs a Period from a frequency in Hertz

pub fn to_integer(&self) -> T[src]

Returns an integer approximation of the Period

Any remainder is truncated.

pub fn from_integer(value: T) -> Self[src]

Constructs a Period from an integer.

Equivalent to Period::new(value,1).

pub fn checked_mul_integer(&self, multiplier: T) -> Option<Self>[src]

assert_eq!(Period::new(1000, 1).checked_mul_integer(5), Some(Period::new(5_000, 1)));

assert_eq!(Period::new(i32::MAX, 1).checked_mul_integer(2), None);

pub fn checked_div_integer(&self, divisor: T) -> Option<Self>[src]

assert_eq!(Period::new(1000, 1).checked_div_integer(5), Some(Period::new(200, 1)));
assert_eq!(Period::new(1, 1000).checked_div_integer(5), Some(Period::new(1, 5000)));

assert_eq!(Period::new(1, i32::MAX).checked_div_integer(2), None);

Trait Implementations

impl<T> CheckedDiv for Period<T> where
    T: TimeInt
[src]

fn checked_div(&self, v: &Self) -> Option<Self>[src]

assert_eq!(<Period as num::CheckedDiv>::checked_div(&Period::new(1000, 1),
    &Period::new(10, 1000)), Some(Period::new(1_000_000, 10)));

assert_eq!(<Period as num::CheckedDiv>::checked_div(&Period::new(1, i32::MAX),
    &Period::new(2,1)), None);

impl<T> CheckedMul for Period<T> where
    T: TimeInt
[src]

fn checked_mul(&self, v: &Self) -> Option<Self>[src]

assert_eq!(<Period as num::CheckedMul>::checked_mul(&Period::new(1000, 1),
    &Period::new(5,5)), Some(Period::new(5_000, 5)));

assert_eq!(<Period as num::CheckedMul>::checked_mul(&Period::new(i32::MAX, 1),
    &Period::new(2,1)), None);

impl<T: Debug> Debug for Period<T>[src]

impl<T> Div<Period<T>> for Period<T> where
    T: TimeInt
[src]

type Output = Self

The resulting type after applying the / operator.

fn div(self, rhs: Self) -> Self::Output[src]

assert_eq!(Period::new(1000, 1) / Period::new(10, 1_000),
    Period::new(1_000_000, 10));

impl<T> Mul<Period<T>> for Period<T> where
    T: TimeInt
[src]

type Output = Self

The resulting type after applying the * operator.

fn mul(self, rhs: Self) -> Self::Output[src]

assert_eq!(Period::new(1000, 1) * Period::new(5,5),
    Period::new(5_000, 5));

impl<T: TimeInt> PartialEq<Period<T>> for Period<T>[src]

impl<T: TimeInt> PartialOrd<Period<T>> for Period<T>[src]

Auto Trait Implementations

impl<T> Send for Period<T> where
    T: Send

impl<T> Sync for Period<T> where
    T: Sync

impl<T> Unpin for Period<T> where
    T: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.