time::ext::instant

Trait InstantExt

source
pub trait InstantExt: Sealed {
    // Required methods
    fn checked_add_signed(&self, duration: Duration) -> Option<Self>;
    fn checked_sub_signed(&self, duration: Duration) -> Option<Self>;
    fn signed_duration_since(&self, earlier: Self) -> Duration;

    // Provided methods
    fn add_signed(self, duration: Duration) -> Self { ... }
    fn sub_signed(self, duration: Duration) -> Self { ... }
}
Expand description

An extension trait for std::time::Instant that adds methods for time::Durations.

Required Methods§

source

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

Returns Some(t) where t is the time self.checked_add_signed(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_signed(&self, duration: Duration) -> Option<Self>

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

source

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

Returns the amount of time elapsed from another instant to this one. This will be negative if earlier is later than self.

§Example
let now = Instant::now();
sleep(Duration::new(1, 0));
let new_now = Instant::now();
println!("{:?}", new_now.signed_duration_since(now)); // positive
println!("{:?}", now.signed_duration_since(new_now)); // negative

Provided Methods§

source

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

§Panics

This function may panic if the resulting point in time cannot be represented by the underlying data structure. See InstantExt::checked_add_signed for a non-panicking version.

source

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

§Panics

This function may panic if the resulting point in time cannot be represented by the underlying data structure. See InstantExt::checked_sub_signed for a non-panicking version.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl InstantExt for Instant

source§

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

source§

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

source§

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

Implementors§