[−][src]Struct quanta::Instant
A point-in-time wall-clock measurement.
Represents a time measurement that has been taken by Clock
and scaled to wall-clock time.
Unlike the stdlib Instant
, this type has two meaningful differences:
- It provides no guarantees around monotonicity whatsoever, beyond any guarantees provided by
Clock
itself. - It is intended to be opaque, but the internal value can be accessed. There are no guarantees
on the internal value timebase, or other factors, remaining stable over time and this
convenience is only intended for comparisons of
Instant
s provided by the same exactClock
instance.
An Instant
is 8 bytes.
Methods
impl Instant
[src]
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 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 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 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_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.
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]
fn add_assign(&mut self, other: Duration)
[src]
impl Clone for Instant
[src]
impl Copy for Instant
[src]
impl Debug for Instant
[src]
impl Eq for Instant
[src]
impl Ord for Instant
[src]
fn cmp(&self, other: &Self) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl PartialEq<Instant> for Instant
[src]
impl PartialOrd<Instant> for Instant
[src]
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.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.
fn sub(self, other: Duration) -> Instant
[src]
impl Sub<Instant> for Instant
[src]
type Output = Duration
The resulting type after applying the -
operator.
fn sub(self, other: Instant) -> Duration
[src]
impl SubAssign<Duration> for Instant
[src]
fn sub_assign(&mut self, other: Duration)
[src]
Auto Trait Implementations
impl RefUnwindSafe for Instant
impl Send for Instant
impl Sync for Instant
impl Unpin for Instant
impl UnwindSafe for Instant
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,
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.
fn to_owned(&self) -> T
[src]
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.
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>,