pub struct Time(/* private fields */);Expand description
A point in time.
Low overhead time representation. Internally represented as milliseconds.
Implementations§
Source§impl Time
impl Time
pub const MAX: Self
pub const EPOCH: Self
pub const fn millis(millis: i64) -> Self
pub const fn seconds(seconds: i64) -> Self
pub const fn minutes(minutes: i64) -> Self
pub const fn hours(hours: i64) -> Self
Sourcepub fn now() -> Time
pub fn now() -> Time
Returns the current time instance based on SystemTime
Don’t use this method to compare if the current time has passed a certain deadline.
Sourcepub const fn as_seconds(&self) -> i64
pub const fn as_seconds(&self) -> i64
Returns the number of whole seconds in the time.
§Examples
assert_eq!(Time::minutes(1).as_seconds(), 60);pub const fn as_millis(&self) -> i64
Sourcepub const fn as_subsecond_nanos(&self) -> i32
pub const fn as_subsecond_nanos(&self) -> i32
Returns the number of subsecond millis converted to nanos.
§Examples
assert_eq!(Time::millis(12345).as_subsecond_nanos(), 345_000_000);Sourcepub const fn round_down(&self, step_size: Duration) -> Time
pub const fn round_down(&self, step_size: Duration) -> Time
Rounds time down to a step size
§Examples
assert_eq!(
Time::minutes(7).round_down(Duration::minutes(5)),
Time::minutes(5)
);
assert_eq!(
Time::minutes(5).round_down(Duration::minutes(5)),
Time::minutes(5)
);Sourcepub const fn round_up(&self, step_size: Duration) -> Time
pub const fn round_up(&self, step_size: Duration) -> Time
Rounds time up to a step size
§Examples
assert_eq!(
Time::minutes(7).round_up(Duration::minutes(5)),
Time::minutes(10)
);
assert_eq!(
Time::minutes(5).round_up(Duration::minutes(5)),
Time::minutes(5)
);Sourcepub fn checked_sub(&self, rhs: Duration) -> Option<Self>
pub fn checked_sub(&self, rhs: Duration) -> Option<Self>
Checked time duration substraction. Computes self - rhs, returning
None if overflow occurred.
§Examples
assert_eq!(
Time::minutes(8).checked_sub(Duration::minutes(5)),
Some(Time::minutes(3))
);
assert_eq!(Time::minutes(3).checked_sub(Duration::minutes(5)), None);
assert_eq!(
Time::minutes(2).checked_sub(Duration::minutes(2)),
Some(Time::EPOCH)
);pub const fn since_epoch(&self) -> Duration
Trait Implementations§
Source§impl AddAssign<Duration> for Time
impl AddAssign<Duration> for Time
Source§fn add_assign(&mut self, rhs: Duration)
fn add_assign(&mut self, rhs: Duration)
Performs the
+= operation. Read moreSource§impl From<SystemTime> for Time
impl From<SystemTime> for Time
Source§fn from(input: SystemTime) -> Self
fn from(input: SystemTime) -> Self
Converts to this type from the input type.
Source§impl Ord for Time
impl Ord for Time
Source§impl PartialOrd for Time
impl PartialOrd for Time
Source§impl SubAssign<Duration> for Time
impl SubAssign<Duration> for Time
Source§fn sub_assign(&mut self, rhs: Duration)
fn sub_assign(&mut self, rhs: Duration)
Performs the
-= operation. Read moreSource§impl TryFrom<Time> for SystemTime
impl TryFrom<Time> for SystemTime
impl Copy for Time
impl Eq for Time
impl StructuralPartialEq for Time
Auto Trait Implementations§
impl Freeze for Time
impl RefUnwindSafe for Time
impl Send for Time
impl Sync for Time
impl Unpin for Time
impl UnsafeUnpin for Time
impl UnwindSafe for Time
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