Skip to content

Commit c3d32ed

Browse files
committed
unconditionally use Duration::from_nanos_u128
1 parent 1ee6f96 commit c3d32ed

File tree

1 file changed

+1
-15
lines changed

1 file changed

+1
-15
lines changed

src/clock.rs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,7 @@ impl Instant {
4646
InstantKind::Virtual { nanoseconds: earlier },
4747
) => {
4848
let duration = nanoseconds.saturating_sub(earlier);
49-
cfg_select! {
50-
bootstrap => {
51-
// `Duration` does not provide a nice constructor from a `u128` of nanoseconds,
52-
// so we have to implement this ourselves.
53-
// It is possible for second to overflow because u64::MAX < (u128::MAX / 1e9).
54-
// It will be saturated to u64::MAX seconds if the value after division exceeds u64::MAX.
55-
let seconds = u64::try_from(duration / 1_000_000_000).unwrap_or(u64::MAX);
56-
// It is impossible for nanosecond to overflow because u32::MAX > 1e9.
57-
let nanosecond = u32::try_from(duration.wrapping_rem(1_000_000_000)).unwrap();
58-
Duration::new(seconds, nanosecond)
59-
}
60-
_ => {
61-
Duration::from_nanos_u128(duration)
62-
}
63-
}
49+
Duration::from_nanos_u128(duration)
6450
}
6551
_ => panic!("all `Instant` must be of the same kind"),
6652
}

0 commit comments

Comments
 (0)