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§
Required Methods§
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
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.