1use std::time::Duration;
2
3pub mod fence;
4
5mod fine_duration;
6mod timer;
7mod timestamp;
8
9pub(crate) use fine_duration::*;
10pub(crate) use timer::*;
11pub(crate) use timestamp::*;
12
13/// Private-public trait for being polymorphic over `Duration`.
14pub trait IntoDuration {
15 /// Converts into a `Duration`.
16 fn into_duration(self) -> Duration;
17}
18
19impl IntoDuration for Duration {
20 #[inline]
21 fn into_duration(self) -> Duration {
22 self
23 }
24}
25
26impl IntoDuration for u64 {
27 #[inline]
28 fn into_duration(self) -> Duration {
29 Duration::from_secs(self)
30 }
31}
32
33impl IntoDuration for f64 {
34 #[inline]
35 fn into_duration(self) -> Duration {
36 Duration::from_secs_f64(self)
37 }
38}
39