File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,37 @@ impl Instant {
50
50
}
51
51
}
52
52
53
+ /// Try to create an Instant from a microsecond count since system boot.
54
+ /// Fails if the number of microseconds is too large.
55
+ pub const fn try_from_micros ( micros : u64 ) -> Option < Self > {
56
+ let Some ( value) = micros. checked_mul ( TICK_HZ / GCD_1M ) else {
57
+ return None ;
58
+ } ;
59
+ Some ( Self {
60
+ ticks : value / ( 1_000_000 / GCD_1M ) ,
61
+ } )
62
+ }
63
+
64
+ /// Try to create an Instant from a millisecond count since system boot.
65
+ /// Fails if the number of milliseconds is too large.
66
+ pub const fn try_from_millis ( millis : u64 ) -> Option < Self > {
67
+ let Some ( value) = millis. checked_mul ( TICK_HZ / GCD_1K ) else {
68
+ return None ;
69
+ } ;
70
+ Some ( Self {
71
+ ticks : value / ( 1000 / GCD_1K ) ,
72
+ } )
73
+ }
74
+
75
+ /// Try to create an Instant from a second count since system boot.
76
+ /// Fails if the number of seconds is too large.
77
+ pub const fn try_from_secs ( seconds : u64 ) -> Option < Self > {
78
+ let Some ( ticks) = seconds. checked_mul ( TICK_HZ ) else {
79
+ return None ;
80
+ } ;
81
+ Some ( Self { ticks } )
82
+ }
83
+
53
84
/// Tick count since system boot.
54
85
pub const fn as_ticks ( & self ) -> u64 {
55
86
self . ticks
You can’t perform that action at this time.
0 commit comments