Struct r3::time::Time [−][src]
#[repr(transparent)]pub struct Time { /* fields omitted */ }
Expand description
Represents a timestamp used by the API surface of the R3 RTOS.
The origin is application-defined. If an application desires to represent a
calender time using Time
, it’s recommended to use the midnight UTC on
January 1, 1970 (a.k.a. “UNIX timestamp”) as the origin.
Time
is backed by u64
and can represent up to 213,503,982 days with
microsecond precision.
Implementations
Construct a new Time
from the specified number of microseconds.
Construct a new Time
from the specified number of milliseconds.
Pancis if millis
overflows the representable range of Time
.
Construct a new Time
from the specified number of seconds.
Pancis if secs
overflows the representable range of Time
.
Get the total number of whole microseconds contained in the time span
between this Time
and Self::ZERO
.
Get the total number of whole milliseconds contained in the time span
between this Time
and Self::ZERO
.
Get the total number of whole seconds contained in the time span
between this Time
and Self::ZERO
.
Get the total number of seconds contained in the time span between this
Time
and Self::ZERO
as f64
.
Examples
use r3::time::Time;
let dur = Time::from_micros(1_201_250_000);
assert_eq!(dur.as_secs_f64(), 1201.25);
Get the total number of seconds contained in the time span between this
Time
and Self::ZERO
as f32
.
Examples
use r3::time::Time;
let dur = Time::from_micros(1_201_250_000);
assert_eq!(dur.as_secs_f32(), 1201.25);
Get the duration since the origin as ::core::time::Duration
.
Get the duration since the specified timestamp as
::core::time::Duration
. Returns None
if self
< reference
.
Get the duration since the specified timestamp as Duration
. Returns
None
if the result overflows the representable range of Duration
.
Advance the time by duration
and return the result.
Put back the time by duration
and return the result.
Trait Implementations
Advance the time by duration
in place.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Put back the time by duration
in place.
Try to construct a Time
from the specified chrono::DateTime<Utc>
.
Returns an error if the specified DateTime
overflows the representable
range of the destination type.
The sub-microsecond part is rounded by truncating.
Examples
use chrono::{DateTime, Utc, TimeZone};
use r3::time::Time;
assert_eq!(
Time::try_from(Utc.timestamp(4, 123_456)),
Ok(Time::from_micros(4_000_123)),
);
assert!(Time::try_from(Utc.timestamp(-1, 999_999_999)).is_err());
type Error = TryFromDateTimeError
type Error = TryFromDateTimeError
The type returned in the event of a conversion error.
Try to construct a chrono::DateTime<chrono::Utc>
from the specified
Time
.
Returns an error if the specified Time
overflows the representable
range of the destination type.
Examples
use chrono::{DateTime, Utc, TimeZone};
use r3::time::Time;
assert_eq!(
DateTime::try_from(Time::from_micros(123_456_789)),
Ok(Utc.timestamp(123, 456_789_000)),
);
assert!(
DateTime::try_from(Time::from_micros(0xffff_ffff_ffff_ffff))
.is_err()
);
type Error = TryFromDateTimeError
type Error = TryFromDateTimeError
The type returned in the event of a conversion error.