xarxa

Crates

git

Versions

default

Flavors

Skip to main content

Instant

Struct Instant 

Source
pub struct Instant { /* private fields */ }
Expand description

A point in time.

An Instant counts milliseconds from an arbitrary starting point, such as system startup. It wraps around to zero every 232 ms, about 49.7 days. To make one from a wider timestamp, keep its low 32 bits.

Comparisons take the wraparound into account. Of two instants less than 231 ms (about 24.8 days) apart, the earlier one is the smaller one, even if the counter wrapped around in between. Instants further apart than that compare the wrong way around. This is why Instant implements PartialOrd but not Ord.

The stack keeps every instant it holds close enough to the current time to compare correctly, as long as Stack::poll is called by the deadline it returns.

Implementations§

Source§

impl Instant

Source

pub const ZERO: Instant

The starting point.

Source

pub const fn from_millis(millis: u32) -> Instant

Create a new Instant from a number of milliseconds.

Source

pub const fn from_secs(secs: u32) -> Instant

Create a new Instant from a number of seconds.

Wraps around like the instant itself.

Source

pub fn now() -> Instant

Create a new Instant from the current std::time::SystemTime.

Requires the std feature.

See std::time::SystemTime::now

Source

pub const fn as_millis(&self) -> u32

The number of milliseconds since the starting point, wrapped around.

Source

pub const fn as_secs(&self) -> u32

The number of whole seconds in as_millis.

Source

pub const fn subsec_millis(&self) -> u32

The number of milliseconds past as_secs.

Always less than 1000.

Source

pub const fn duration_since(&self, earlier: Instant) -> Duration

The amount of time elapsed from earlier to this instant.

Returns Duration::ZERO if earlier is later than this instant. Saturates at Duration::MAX.

Source

pub const fn checked_duration_since(&self, earlier: Instant) -> Option<Duration>

The amount of time elapsed from earlier to this instant.

Returns None if earlier is later than this instant. Saturates at Duration::MAX.

Source

pub const fn saturating_duration_since(&self, earlier: Instant) -> Duration

The amount of time elapsed from earlier to this instant.

Returns Duration::ZERO if earlier is later than this instant. Saturates at Duration::MAX.

Source

pub fn min(self, other: Instant) -> Instant

The earlier of two instants.

Source

pub fn max(self, other: Instant) -> Instant

The later of two instants.

Source

pub fn elapsed(&self) -> Duration

The amount of time elapsed since this instant.

Requires the std feature. Returns Duration::ZERO if this instant is in the future.

Trait Implementations§

Source§

impl Add<Duration> for Instant

Source§

type Output = Instant

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Duration) -> Instant

Performs the + operation. Read more
Source§

impl AddAssign<Duration> for Instant

Source§

fn add_assign(&mut self, rhs: Duration)

Performs the += operation. Read more
Source§

impl Clone for Instant

Source§

fn clone(&self) -> Instant

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Instant

Source§

impl Debug for Instant

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Instant

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Instant

Source§

impl From<Instant> for Instant

Available on crate feature std only.
Source§

fn from(other: Instant) -> Instant

Counts from the first std::time::Instant converted, and wraps around like any other Instant.

Source§

impl From<SystemTime> for Instant

Available on crate feature std only.
Source§

fn from(other: SystemTime) -> Instant

Counts from the unix epoch, and wraps around like any other Instant.

Source§

impl PartialEq for Instant

Source§

fn eq(&self, other: &Instant) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialOrd for Instant

Source§

fn partial_cmp(&self, other: &Instant) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for Instant

Source§

impl Sub for Instant

Source§

fn sub(self, rhs: Instant) -> Duration

Saturates to Duration::ZERO if rhs is later than self, like Instant::duration_since.

Source§

type Output = Duration

The resulting type after applying the - operator.
Source§

impl Sub<Duration> for Instant

Source§

type Output = Instant

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Duration) -> Instant

Performs the - operation. Read more
Source§

impl SubAssign<Duration> for Instant

Source§

fn sub_assign(&mut self, rhs: Duration)

Performs the -= operation. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.