pub struct PausableInstant { /* private fields */ }
Expand description
Native representation of a paused instant that contains the reference time and the elapsed time on the clock from the reference time.
§Note on PartialOrd/Ord
The derived Ord and PartialOrd behavior is only valid for PausableInstants from the same clock. While the compare functions from ord and partial_ord can be called on PausableInstants from different clocks without panics, the results will have no guaranteed order
Implementations§
Source§impl PausableInstant
impl PausableInstant
Sourcepub fn elapsed_millis(&self) -> u64
pub fn elapsed_millis(&self) -> u64
Get this pausable instant’s elapsed millis.
Sourcepub fn zero_instant(&self) -> Instant
pub fn zero_instant(&self) -> Instant
Get the instant this pausable instant is referenced off of
Sourcepub fn elapsed(&self, originating_clock: &PausableClock) -> Duration
pub fn elapsed(&self, originating_clock: &PausableClock) -> Duration
Get the elapsed time since this instant according to the given (and ideally originating) clock.
#Panics
This function will panic If the given clock produces a now()
instant
that is “before” this one. This is guaranteed not to happen if the
given clock is the originating clock
Sourcepub fn duration_since(&self, earlier: PausableInstant) -> Duration
pub fn duration_since(&self, earlier: PausableInstant) -> Duration
Returns the amount of time elapsed from another instant to this one according to the pausable clock. Ideally the given instant is from the same pausable clock otherwise the resulting duration is meaningless.
#Panics
This function will panic if the given instant is “later” than this one.
Sourcepub fn checked_duration_since(
&self,
earlier: &PausableInstant,
) -> Option<Duration>
pub fn checked_duration_since( &self, earlier: &PausableInstant, ) -> Option<Duration>
Returns the amount of time elapsed from another instant to this one according to the pausable clock. Ideally the given instant is from the same pausable clock otherwise the resulting duration is meaningless.
This function will return None if the given instant is “later” than this one.
Sourcepub fn saturating_duration_since(&self, earlier: &PausableInstant) -> Duration
pub fn saturating_duration_since(&self, earlier: &PausableInstant) -> Duration
Returns the amount of time elapsed from another instant to this one according to the pausable clock. Ideally the given instant is from the same pausable clock otherwise the resulting duration is meaningless.
This function will return zero if the given instant is “later” than this one.
Sourcepub fn checked_add(&self, duration: Duration) -> Option<PausableInstant>
pub fn checked_add(&self, duration: Duration) -> Option<PausableInstant>
Returns Some(t)
where t
is the time self + duration
if the given
duration can be represented in milliseconds as a u64 and this
pausable instant’s elapsed milliseconds plus the duration in millis can
also be represented as a u64.
Effectively this means the resulting duration since the elapse millis needs to be less than about 500 million years.
Sourcepub fn checked_sub(&self, duration: Duration) -> Option<PausableInstant>
pub fn checked_sub(&self, duration: Duration) -> Option<PausableInstant>
Returns Some(t)
where t
is the time self - duration
if the given
duration can be represented in milliseconds as a u64, and this
pausable instant’s elapsed milliseconds >= the duration in milliseconds
Effectively this means the given duration needs to be less than about 500 million years, and the resulting instant cannot be before the zero instant of this pausable instant.
Trait Implementations§
Source§impl Add<Duration> for PausableInstant
impl Add<Duration> for PausableInstant
Source§fn add(self, other: Duration) -> Self::Output
fn add(self, other: Duration) -> Self::Output
#Panics
This function may panic if the resulting point in time cannot be
represented by the underlying data structure. See
PausableInstant::checked_add
for a version without panic.
Source§type Output = PausableInstant
type Output = PausableInstant
+
operator.Source§impl AddAssign<Duration> for PausableInstant
impl AddAssign<Duration> for PausableInstant
Source§fn add_assign(&mut self, other: Duration)
fn add_assign(&mut self, other: Duration)
+=
operation. Read moreSource§impl Clone for PausableInstant
impl Clone for PausableInstant
Source§fn clone(&self) -> PausableInstant
fn clone(&self) -> PausableInstant
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PausableInstant
impl Debug for PausableInstant
Source§impl From<PausableInstant> for Instant
impl From<PausableInstant> for Instant
Source§fn from(source: PausableInstant) -> Self
fn from(source: PausableInstant) -> Self
Convert from the given pausable instant to a std instant. This is
helpful for working with other libraries that need time info, but it has
minor risks because once converted to a std instant, functions like
elapsed()
and duration_since()
will produce unexpected results
because those functions compare against the actual time and not the
pausable time.
Source§impl Hash for PausableInstant
impl Hash for PausableInstant
Source§impl Ord for PausableInstant
impl Ord for PausableInstant
Source§fn cmp(&self, other: &PausableInstant) -> Ordering
fn cmp(&self, other: &PausableInstant) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for PausableInstant
impl PartialEq for PausableInstant
Source§impl PartialOrd for PausableInstant
impl PartialOrd for PausableInstant
Source§impl Sub<Duration> for PausableInstant
impl Sub<Duration> for PausableInstant
Source§fn sub(self, other: Duration) -> PausableInstant
fn sub(self, other: Duration) -> PausableInstant
#Panics
This function may panic if the resulting point in time cannot be
represented by the underlying data structure. See
PausableInstant::checked_sub
for a version without panic.
Source§type Output = PausableInstant
type Output = PausableInstant
-
operator.Source§impl Sub for PausableInstant
impl Sub for PausableInstant
Source§impl SubAssign<Duration> for PausableInstant
impl SubAssign<Duration> for PausableInstant
Source§fn sub_assign(&mut self, other: Duration)
fn sub_assign(&mut self, other: Duration)
-=
operation. Read more