pub trait Ticks: Clone + Copy + From<u32> + Debug + Ord + PartialOrd + Eq {
    fn into_usize(self) -> usize;
    fn into_u32(self) -> u32;
    fn wrapping_add(self, other: Self) -> Self;
    fn wrapping_sub(self, other: Self) -> Self;
    fn within_range(self, start: Self, end: Self) -> bool;
    fn max_value() -> Self;
    fn half_max_value() -> Self;
    fn from_or_max(val: u64) -> Self;
    fn saturating_scale(self, numerator: u32, denominator: u32) -> u32;
}
Expand description

An integer type defining the width of a time value, which allows clients to know when wraparound will occur.

Required Methods

Converts the type into a usize, stripping the higher bits it if it is larger than usize and filling the higher bits with 0 if it is smaller than usize.

Converts the type into a u32, stripping the higher bits it if it is larger than u32 and filling the higher bits with 0 if it is smaller than u32. Included as a simple helper since Tock uses u32 pervasively and most platforms are 32 bits.

Add two values, wrapping around on overflow using standard unsigned arithmetic.

Subtract two values, wrapping around on underflow using standard unsigned arithmetic.

Returns whether the value is in the range of [start, end) using unsigned arithmetic and considering wraparound. It returns trueif, incrementing fromstart, the value will be reached before end. Put another way, it returns (self - start) < (end - start)` in unsigned arithmetic.

Returns the maximum value of this type, which should be (2^width)-1.

Returns the half the maximum value of this type, which should be (2^width-1).

Coverts the specified val into this type if it fits otherwise the max_value() is returned

Scales the ticks by the specified numerator and denominator. If the resulting value would be greater than u32,u32::MAX is returned instead

Implementors