pub struct Duration { /* private fields */ }Expand description
A relative span of time represented as nanoseconds.
Used in DDS for timeouts, lease durations, deadlines, and other
interval-based QoS policies.
Implementations§
Source§impl Duration
impl Duration
Sourcepub const INFINITE: Self
pub const INFINITE: Self
A sentinel value representing an infinite timeout.
Pass this to any API that accepts a Duration to block indefinitely.
Sourcepub const fn from_nanos(nanos: i64) -> Self
pub const fn from_nanos(nanos: i64) -> Self
Creates a Duration from a nanosecond value.
Unlike std::time::Duration::from_nanos, this accepts an i64
rather than a u64.
§Examples
use cyclonedds::Duration;
let d = Duration::from_nanos(1_000_000);Sourcepub const fn from_millis(millis: i64) -> Self
pub const fn from_millis(millis: i64) -> Self
Sourcepub const fn as_nanos(&self) -> i64
pub const fn as_nanos(&self) -> i64
Returns the duration in nanoseconds.
§Examples
use cyclonedds::Duration;
assert_eq!(Duration::from_secs(1).as_nanos(), 1_000_000_000);Sourcepub const fn as_millis(&self) -> i64
pub const fn as_millis(&self) -> i64
Returns the duration in whole milliseconds.
§Examples
use cyclonedds::Duration;
assert_eq!(Duration::from_secs(1).as_millis(), 1_000);Sourcepub const fn as_secs(&self) -> i64
pub const fn as_secs(&self) -> i64
Returns the duration in whole seconds.
§Examples
use cyclonedds::Duration;
assert_eq!(Duration::from_millis(1_500).as_secs(), 1);Sourcepub const fn is_infinite(&self) -> bool
pub const fn is_infinite(&self) -> bool
Returns true if this duration equals Duration::INFINITE.
§Examples
use cyclonedds::Duration;
assert!(Duration::INFINITE.is_infinite());
assert!(!Duration::from_secs(5).is_infinite());Sourcepub fn checked_add(self, rhs: Self) -> Option<Self>
pub fn checked_add(self, rhs: Self) -> Option<Self>
Adds two durations, returning None on overflow.
§Examples
use cyclonedds::Duration;
let d = Duration::from_secs(1).checked_add(Duration::from_secs(2));
assert_eq!(d, Some(Duration::from_secs(3)));Sourcepub fn checked_sub(self, rhs: Self) -> Option<Self>
pub fn checked_sub(self, rhs: Self) -> Option<Self>
Subtracts a duration, returning None on underflow.
§Examples
use cyclonedds::Duration;
let d = Duration::from_secs(3).checked_sub(Duration::from_secs(1));
assert_eq!(d, Some(Duration::from_secs(2)));Sourcepub fn checked_mul(self, rhs: i64) -> Option<Self>
pub fn checked_mul(self, rhs: i64) -> Option<Self>
Multiplies a duration by a scalar, returning None on overflow.
§Examples
use cyclonedds::Duration;
let d = Duration::from_secs(2).checked_mul(3);
assert_eq!(d, Some(Duration::from_secs(6)));Trait Implementations§
impl Copy for Duration
impl Eq for Duration
impl StructuralPartialEq for Duration
Auto Trait Implementations§
impl Freeze for Duration
impl RefUnwindSafe for Duration
impl Send for Duration
impl Sync for Duration
impl Unpin for Duration
impl UnsafeUnpin for Duration
impl UnwindSafe for Duration
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more