pub trait Instant: Sized + Ord + Copy + Clone + Debug + Send + Sync + InspectableValue + 'static {
    // Required methods
    fn duration_since(&self, earlier: Self) -> Duration;
    fn saturating_duration_since(&self, earlier: Self) -> Duration;
    fn checked_add(&self, duration: Duration) -> Option<Self>;
    fn checked_sub(&self, duration: Duration) -> Option<Self>;

    // Provided method
    fn add(&self, duration: Duration) -> Self { ... }
}
Expand description

A type representing an instant in time.

Instant can be implemented by any type which represents an instant in time. This can include any sort of real-world clock time (e.g., [std::time::Instant]) or fake time such as in testing.

Required Methods§

source

fn duration_since(&self, earlier: Self) -> Duration

Returns the amount of time elapsed from another instant to this one.

§Panics

This function will panic if earlier is later than self.

source

fn saturating_duration_since(&self, earlier: Self) -> Duration

Returns the amount of time elapsed from another instant to this one, saturating at zero.

source

fn checked_add(&self, duration: Duration) -> Option<Self>

Returns Some(t) where t is the time self + duration if t can be represented as Instant (which means it’s inside the bounds of the underlying data structure), None otherwise.

source

fn checked_sub(&self, duration: Duration) -> Option<Self>

Returns Some(t) where t is the time self - duration if t can be represented as Instant (which means it’s inside the bounds of the underlying data structure), None otherwise.

Provided Methods§

source

fn add(&self, duration: Duration) -> Self

Unwraps the result from checked_add.

§Panics

This function will panic if the addition makes the clock wrap around.

Object Safety§

This trait is not object safe.

Implementors§