Lines Matching refs:TimeSpec
30 use crate::sys::time::{zero_init_timespec, TimeSpec};
82 /// Alarm will trigger once after the time given in `TimeSpec`
83 OneShot(TimeSpec),
86 IntervalDelayed(TimeSpec, TimeSpec),
88 Interval(TimeSpec),
188 pub struct TimeSpec(timespec);
209 impl From<timespec> for TimeSpec {
215 impl From<Duration> for TimeSpec {
221 impl From<TimeSpec> for Duration {
222 fn from(timespec: TimeSpec) -> Self {
227 impl AsRef<timespec> for TimeSpec {
233 impl AsMut<timespec> for TimeSpec {
239 impl Ord for TimeSpec {
242 fn cmp(&self, other: &TimeSpec) -> cmp::Ordering {
251 impl PartialOrd for TimeSpec {
252 fn partial_cmp(&self, other: &TimeSpec) -> Option<cmp::Ordering> {
257 impl TimeValLike for TimeSpec {
261 fn seconds(seconds: i64) -> TimeSpec {
264 "TimeSpec out of bounds; seconds={}",
269 TimeSpec(ts)
273 fn milliseconds(milliseconds: i64) -> TimeSpec {
276 .expect("TimeSpec::milliseconds out of bounds");
278 TimeSpec::nanoseconds(nanoseconds)
281 /// Makes a new `TimeSpec` with given number of microseconds.
283 fn microseconds(microseconds: i64) -> TimeSpec {
286 .expect("TimeSpec::milliseconds out of bounds");
288 TimeSpec::nanoseconds(nanoseconds)
291 /// Makes a new `TimeSpec` with given number of nanoseconds.
295 fn nanoseconds(nanoseconds: i64) -> TimeSpec {
299 "TimeSpec out of bounds"
304 TimeSpec(ts)
334 impl TimeSpec {
335 /// Construct a new `TimeSpec` from its components
367 TimeSpec(ts)
375 impl ops::Neg for TimeSpec {
376 type Output = TimeSpec;
378 fn neg(self) -> TimeSpec {
379 TimeSpec::nanoseconds(-self.num_nanoseconds())
383 impl ops::Add for TimeSpec {
384 type Output = TimeSpec;
386 fn add(self, rhs: TimeSpec) -> TimeSpec {
387 TimeSpec::nanoseconds(self.num_nanoseconds() + rhs.num_nanoseconds())
391 impl ops::Sub for TimeSpec {
392 type Output = TimeSpec;
394 fn sub(self, rhs: TimeSpec) -> TimeSpec {
395 TimeSpec::nanoseconds(self.num_nanoseconds() - rhs.num_nanoseconds())
399 impl ops::Mul<i32> for TimeSpec {
400 type Output = TimeSpec;
402 fn mul(self, rhs: i32) -> TimeSpec {
406 .expect("TimeSpec multiply out of bounds");
408 TimeSpec::nanoseconds(usec)
412 impl ops::Div<i32> for TimeSpec {
413 type Output = TimeSpec;
415 fn div(self, rhs: i32) -> TimeSpec {
417 TimeSpec::nanoseconds(usec)
421 impl fmt::Display for TimeSpec {
717 use super::{TimeSpec, TimeVal, TimeValLike};
722 assert_ne!(TimeSpec::seconds(1), TimeSpec::zero());
724 TimeSpec::seconds(1) + TimeSpec::seconds(2),
725 TimeSpec::seconds(3)
728 TimeSpec::minutes(3) + TimeSpec::seconds(2),
729 TimeSpec::seconds(182)
736 let timespec = TimeSpec::nanoseconds(123_123_456_789);
738 assert_eq!(TimeSpec::from(duration), timespec);
744 let a = TimeSpec::seconds(1) + TimeSpec::nanoseconds(123);
745 let b = TimeSpec::seconds(-1) + TimeSpec::nanoseconds(-123);
752 assert_eq!(TimeSpec::seconds(1), TimeSpec::nanoseconds(1_000_000_000));
753 assert!(TimeSpec::seconds(1) < TimeSpec::nanoseconds(1_000_000_001));
754 assert!(TimeSpec::seconds(1) > TimeSpec::nanoseconds(999_999_999));
755 assert!(TimeSpec::seconds(-1) < TimeSpec::nanoseconds(-999_999_999));
756 assert!(TimeSpec::seconds(-1) > TimeSpec::nanoseconds(-1_000_000_001));
761 assert_eq!(TimeSpec::zero().to_string(), "0 seconds");
762 assert_eq!(TimeSpec::seconds(42).to_string(), "42 seconds");
763 assert_eq!(TimeSpec::milliseconds(42).to_string(), "0.042 seconds");
764 assert_eq!(TimeSpec::microseconds(42).to_string(), "0.000042 seconds");
766 TimeSpec::nanoseconds(42).to_string(),
769 assert_eq!(TimeSpec::seconds(-86401).to_string(), "-86401 seconds");