Struct quanta::Instant[][src]

pub struct Instant(_);
Expand description

A point-in-time wall-clock measurement.

Unlike the stdlib Instant, this type has a meaningful difference: it is intended to be opaque, but the internal value can be accessed. There are no guarantees here and depending on this value directly is proceeding at your own risk. ⚠️

An Instant is 8 bytes.

Implementations

Gets the current time, scaled to reference time.

This method depends on a lazily initialized global clock, which can take up to 200ms to initialize and calibrate itself.

This method is the spiritual equivalent of std::time::Instant::now. It is guaranteed to return a monotonically increasing value.

Gets the most recent current time, scaled to reference time.

This method provides ultra-low-overhead access to a slightly-delayed version of the current time. Instead of querying the underlying source clock directly, a shared, global value is read directly without the need to scale to reference time.

The value is updated by running an “upkeep” thread or by calling [quanta::set_recent]. An upkeep thread can be configured and spawned via [Builder].

If the upkeep thread has not been started, or no value has been set manually, a lazily initialized global clock will be used to get the current time. This clock can take up to 200ms to initialize and calibrate itself.

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

Panics

This function will panic if earlier is later than self.

Examples

use quanta::Clock;
use std::time::Duration;
use std::thread::sleep;

let mut clock = Clock::new();
let now = clock.now();
sleep(Duration::new(1, 0));
let new_now = clock.now();
println!("{:?}", new_now.duration_since(now));

Returns the amount of time elapsed from another instant to this one, or None if that instant is earlier than this one.

Examples

use quanta::Clock;
use std::time::Duration;
use std::thread::sleep;

let mut clock = Clock::new();
let now = clock.now();
sleep(Duration::new(1, 0));
let new_now = clock.now();
println!("{:?}", new_now.checked_duration_since(now));
println!("{:?}", now.checked_duration_since(new_now)); // None

Returns the amount of time elapsed from another instant to this one, or zero duration if that instant is earlier than this one.

Examples

use quanta::Clock;
use std::time::Duration;
use std::thread::sleep;

let mut clock = Clock::new();
let now = clock.now();
sleep(Duration::new(1, 0));
let new_now = clock.now();
println!("{:?}", new_now.saturating_duration_since(now));
println!("{:?}", now.saturating_duration_since(new_now)); // 0ns

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.

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.

Gets the inner value of this Instant.

Trait Implementations

Panics

This function may panic if the resulting point in time cannot be represented by the underlying data structure. See Instant::checked_add for a version without panic.

The resulting type after applying the + operator.

Performs the += operation. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Performs the conversion.

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

The resulting type after applying the - operator.

Performs the - operation. Read more

The resulting type after applying the - operator.

Performs the - operation. Read more

Performs the -= operation. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.