[−][src]Crate easytime
Providing wrapper types for safely performing panic-free checked arithmetic on instants and durations.
This crate provides the following two data structures.
-
easytime::Instant
-- A wrapper type forstd::time::Instant
-
easytime::Duration
-- A wrapper type forstd::time::Duration
Examples
use easytime::{Duration, Instant}; use std::time::Duration as StdDuration; fn foo(secs: u64, nanos: u32, instant: Instant) -> Option<StdDuration> { let now = Instant::now(); let dur = Duration::new(secs, nanos); (now - instant - dur).into_inner() }
If you use std::time
directly, you need to write as follows:
ⓘThis example is not tested
#![feature(checked_duration_since)] use std::time::{Duration, Instant}; fn foo(secs: u64, nanos: u32, instant: Instant) -> Option<Duration> { let now = Instant::now(); let secs = Duration::from_secs(secs); let nanos = Duration::from_nanos(u64::from(nanos)); let dur = secs.checked_add(nanos)?; now.checked_duration_since(instant)?.checked_sub(dur) }
Optional features
std
(enabled by default)- Enable to use
easytime::Instant
. - This requires Rust 1.34 or later.
- If disabled this feature, easytime can compile with Rust 1.33.
- Enable to use
Structs
Duration | A |
Instant | A measurement of a monotonically nondecreasing clock.
Opaque and useful only with |