[−][src]Struct quanta::Instant
A point-in-time wall-clock measurement.
Represents a time measurement that has been taken by Clock and scaled to reference time,
which is relative to the Unix epoch of 1970-01-01T00:00:00Z.
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
impl Instant[src]
pub fn now() -> Instant[src]
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.
pub fn recent() -> Instant[src]
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.
pub fn duration_since(&self, earlier: Instant) -> Duration[src]
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));
pub fn checked_duration_since(&self, earlier: Instant) -> Option<Duration>[src]
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
pub fn saturating_duration_since(&self, earlier: Instant) -> Duration[src]
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
pub fn checked_add(&self, duration: Duration) -> Option<Instant>[src]
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.
pub fn checked_sub(&self, duration: Duration) -> Option<Instant>[src]
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.
pub fn as_unix_duration(&self) -> Duration[src]
Gets this Instant as a Duration since the Unix epoch.
pub fn as_u64(&self) -> u64[src]
Gets the inner value of this Instant.
Trait Implementations
impl Add<Duration> for Instant[src]
type Output = Instant
The resulting type after applying the + operator.
pub fn add(self, other: Duration) -> Instant[src]
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.
impl AddAssign<Duration> for Instant[src]
pub fn add_assign(&mut self, other: Duration)[src]
impl AsNanoseconds for Instant[src]
impl Clone for Instant[src]
impl Copy for Instant[src]
impl Debug for Instant[src]
impl Eq for Instant[src]
impl Into<Timestamp> for Instant[src]
impl Ord for Instant[src]
pub fn cmp(&self, other: &Self) -> Ordering[src]
#[must_use]pub fn max(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self1.50.0[src]
impl PartialEq<Instant> for Instant[src]
impl PartialOrd<Instant> for Instant[src]
pub fn partial_cmp(&self, other: &Self) -> Option<Ordering>[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool1.0.0[src]
impl StructuralEq for Instant[src]
impl StructuralPartialEq for Instant[src]
impl Sub<Duration> for Instant[src]
type Output = Instant
The resulting type after applying the - operator.
pub fn sub(self, other: Duration) -> Instant[src]
impl Sub<Instant> for Instant[src]
type Output = Duration
The resulting type after applying the - operator.
pub fn sub(self, other: Instant) -> Duration[src]
impl SubAssign<Duration> for Instant[src]
pub fn sub_assign(&mut self, other: Duration)[src]
Auto Trait Implementations
impl RefUnwindSafe for Instant[src]
impl Send for Instant[src]
impl Sync for Instant[src]
impl Unpin for Instant[src]
impl UnwindSafe for Instant[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,