[−][src]Struct unix_time::Instant
An precise instant relative to the UNIX epoch, with nanosecond precision.
Implementations
impl Instant
[src]
pub fn at(secs: u64, nanos: u32) -> Self
[src]
Creates an Instant
at the specified seconds and nanoseconds after the
UNIX epoch.
pub fn now() -> Self
[src]
Returns an instant corresponding to "now".
pub fn secs(&self) -> u64
[src]
Returns the number of whole seconds that spaces self
from the UNIX
epoch.
The returned value does not include the fractional (nanosecond) part of
the duration, which can be obtained using subsec_nanos
.
Examples
use unix_time::Instant; let duration = Instant::at(5, 730023852); assert_eq!(duration.secs(), 5);
To determine the total number of seconds represented by the Duration
,
use secs
in combination with subsec_nanos
:
use unix_time::Instant; let instant = Instant::at(5, 730023852); assert_eq!(5.730023852, instant.secs() as f64 + instant.subsec_nanos() as f64 * 1e-9);
pub fn subsec_nanos(&self) -> u32
[src]
Returns the fractional part that spaces self
from the UNIX epoch in
nanoseconds.
This method does not return the total duration since the UNIX epoch in nanoseconds. The returned number always represents a fractional portion of a second (i.e., it is less than one billion).
Examples
use unix_time::Instant; let instant = Instant::at(5, 10_000_000); assert_eq!(instant.secs(), 5); assert_eq!(instant.subsec_nanos(), 10_000_000);
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 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 later than this one.
Examples
use unix_time::Instant; use std::time::Duration; use std::thread::sleep; let now = Instant::now(); sleep(Duration::new(1, 0)); let new_now = Instant::now(); println!("{:?}", new_now.checked_duration_since(now)); println!("{:?}", now.checked_duration_since(new_now)); // None
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 std::time::Duration; use unix_time::Instant; use std::thread::sleep; let now = Instant::now(); sleep(Duration::new(1, 0).into()); let new_now = Instant::now(); println!("{:?}", new_now.duration_since(now));
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 later than this one.
Examples
use std::time::Duration; use unix_time::Instant; use std::thread::sleep; let now = Instant::now(); sleep(Duration::new(1, 0)); let new_now = Instant::now(); println!("{:?}", new_now.saturating_duration_since(now)); println!("{:?}", now.saturating_duration_since(new_now)); // 0ns
pub fn elapsed(&self) -> Duration
[src]
Returns the amount of time elapsed since this instant was created.
Panics
This function may panic if the current time is earlier than this
instant, which is something that can happen if an Instant
is
produced synthetically.
Examples
use std::thread::sleep; use std::time::Duration; use unix_time::Instant; let instant = Instant::now(); let three_secs = Duration::from_secs(3); sleep(three_secs); assert!(instant.elapsed() >= three_secs);
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 Clone for Instant
[src]
impl Copy for Instant
[src]
impl Eq for Instant
[src]
impl From<Duration> for Instant
[src]
impl From<Instant> for Duration
[src]
impl Hash for Instant
[src]
pub fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for Instant
[src]
pub fn cmp(&self, other: &Instant) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Instant> for Instant
[src]
impl PartialOrd<Instant> for Instant
[src]
pub fn partial_cmp(&self, other: &Instant) -> Option<Ordering>
[src]
pub fn lt(&self, other: &Instant) -> bool
[src]
pub fn le(&self, other: &Instant) -> bool
[src]
pub fn gt(&self, other: &Instant) -> bool
[src]
pub fn ge(&self, other: &Instant) -> bool
[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
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,
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>,