From 43baa2c0419709c13f7764212596f94d9900ba36 Mon Sep 17 00:00:00 2001 From: Jonathan Behrens Date: Sun, 22 Apr 2018 15:39:28 -0400 Subject: [PATCH] Add as_nanos function to duration --- src/libcore/time.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/libcore/time.rs b/src/libcore/time.rs index e22fe450bb1f..8ebdbbd83709 100644 --- a/src/libcore/time.rs +++ b/src/libcore/time.rs @@ -263,6 +263,22 @@ impl Duration { #[inline] pub fn subsec_nanos(&self) -> u32 { self.nanos } + /// Returns the total number of nanoseconds contained by this `Duration`. + /// + /// # Examples + /// + /// ``` + /// use std::time::Duration; + /// + /// let duration = Duration::new(5, 730023852); + /// assert_eq!(duration.as_nanos(), 5730023852); + /// ``` + #[unstable(feature = "duration_nanos", issue = "0")] + #[inline] + pub fn as_nanos(&self) -> u128 { + self.secs as u128 * 1000_000_000 + self.nanos as u128 + } + /// Checked `Duration` addition. Computes `self + other`, returning [`None`] /// if overflow occurred. ///