pavex::time::ext

Trait InstantExt

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§

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.

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.

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§

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.

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§

§

impl InstantExt for Instant

§

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

§

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

§

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

Implementors§