Trait InstantExt

pub trait InstantExt: Sealed

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

Required Methods

fn checked_add_signed(&self, duration: SignedDuration) -> 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.

fn checked_sub_signed(&self, duration: SignedDuration) -> 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.

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

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

Example

# use std::thread::sleep;
# use std::time::{Duration, Instant};
# use time::ext::InstantExt;
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

fn add_signed(self, duration: SignedDuration) -> 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.

fn sub_signed(self, duration: SignedDuration) -> 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.

Implementors