Time

Trait Time 

Source
pub trait Time:
    PartialEq
    + PartialOrd
    + Clone
    + Copy {
    type Duration: Default + PartialEq + PartialOrd + Clone + Copy;

    // Required methods
    fn since(self, earlier: Self) -> Self::Duration;
    fn advance(self, duration: Self::Duration) -> Self;
    fn duration_as_f32(duration: Self::Duration) -> f32;
    fn duration_sum(
        duration: Self::Duration,
        other: Self::Duration,
    ) -> Self::Duration;
    fn duration_diff(
        duration: Self::Duration,
        other: Self::Duration,
    ) -> Self::Duration;
    fn duration_scale(duration: Self::Duration, scale: f32) -> Self::Duration;
}
Expand description

Time trait should be implemented for types that represent animation time. It’s implemented for f32, f64, std::time::Instant, and std::time::SystemTime by default. You can implement it for your own types.

Required Associated Types§

Source

type Duration: Default + PartialEq + PartialOrd + Clone + Copy

Positive time difference

Required Methods§

Source

fn since(self, earlier: Self) -> Self::Duration

Panics if self < earlier

Source

fn advance(self, duration: Self::Duration) -> Self

Source

fn duration_as_f32(duration: Self::Duration) -> f32

Source

fn duration_sum( duration: Self::Duration, other: Self::Duration, ) -> Self::Duration

Source

fn duration_diff( duration: Self::Duration, other: Self::Duration, ) -> Self::Duration

Source

fn duration_scale(duration: Self::Duration, scale: f32) -> Self::Duration

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.

Implementations on Foreign Types§

Source§

impl Time for f32

Source§

type Duration = f32

Source§

fn since(self, earlier: f32) -> f32

Source§

fn advance(self, duration: f32) -> f32

Source§

fn duration_as_f32(duration: f32) -> f32

Source§

fn duration_sum(duration: f32, other: f32) -> f32

Source§

fn duration_diff(duration: f32, other: f32) -> f32

Source§

fn duration_scale(duration: f32, scale: f32) -> f32

Source§

impl Time for f64

Source§

type Duration = f64

Source§

fn since(self, earlier: f64) -> f64

Source§

fn advance(self, duration: f64) -> f64

Source§

fn duration_as_f32(duration: f64) -> f32

Source§

fn duration_sum(duration: f64, other: f64) -> f64

Source§

fn duration_diff(duration: f64, other: f64) -> f64

Source§

fn duration_scale(duration: f64, scale: f32) -> f64

Source§

impl Time for Instant

Source§

type Duration = Duration

Source§

fn since(self, earlier: Self) -> Self::Duration

Source§

fn advance(self, duration: Self::Duration) -> Self

Source§

fn duration_as_f32(duration: Self::Duration) -> f32

Source§

fn duration_sum( duration: Self::Duration, other: Self::Duration, ) -> Self::Duration

Source§

fn duration_diff( duration: Self::Duration, other: Self::Duration, ) -> Self::Duration

Source§

fn duration_scale(duration: Self::Duration, scale: f32) -> Self::Duration

Source§

impl Time for SystemTime

Source§

type Duration = Duration

Source§

fn since(self, earlier: Self) -> Self::Duration

Source§

fn advance(self, duration: Self::Duration) -> Self

Source§

fn duration_as_f32(duration: Self::Duration) -> f32

Source§

fn duration_sum( duration: Self::Duration, other: Self::Duration, ) -> Self::Duration

Source§

fn duration_diff( duration: Self::Duration, other: Self::Duration, ) -> Self::Duration

Source§

fn duration_scale(duration: Self::Duration, scale: f32) -> Self::Duration

Implementors§