File tree Expand file tree Collapse file tree 2 files changed +2
-8
lines changed Expand file tree Collapse file tree 2 files changed +2
-8
lines changed Original file line number Diff line number Diff line change @@ -46,14 +46,7 @@ impl Instant {
46
46
InstantKind :: Virtual { nanoseconds : earlier } ,
47
47
) => {
48
48
let duration = nanoseconds. saturating_sub ( earlier) ;
49
- // `Duration` does not provide a nice constructor from a `u128` of nanoseconds,
50
- // so we have to implement this ourselves.
51
- // It is possible for second to overflow because u64::MAX < (u128::MAX / 1e9).
52
- // It will be saturated to u64::MAX seconds if the value after division exceeds u64::MAX.
53
- let seconds = u64:: try_from ( duration / 1_000_000_000 ) . unwrap_or ( u64:: MAX ) ;
54
- // It is impossible for nanosecond to overflow because u32::MAX > 1e9.
55
- let nanosecond = u32:: try_from ( duration. wrapping_rem ( 1_000_000_000 ) ) . unwrap ( ) ;
56
- Duration :: new ( seconds, nanosecond)
49
+ Duration :: from_nanos_u128 ( duration)
57
50
}
58
51
_ => panic ! ( "all `Instant` must be of the same kind" ) ,
59
52
}
Original file line number Diff line number Diff line change 18
18
#![ feature( derive_coerce_pointee) ]
19
19
#![ feature( arbitrary_self_types) ]
20
20
#![ feature( iter_advance_by) ]
21
+ #![ feature( duration_from_nanos_u128) ]
21
22
// Configure clippy and other lints
22
23
#![ allow(
23
24
clippy:: collapsible_else_if,
You can’t perform that action at this time.
0 commit comments