1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -1074,7 +1074,9 @@ impl Duration {
1074
1074
#[ inline]
1075
1075
#[ rustc_const_unstable( feature = "duration_consts_float" , issue = "72440" ) ]
1076
1076
pub const fn div_duration_f64 ( self , rhs : Duration ) -> f64 {
1077
- self . as_secs_f64 ( ) / rhs. as_secs_f64 ( )
1077
+ let self_nanos = ( self . secs as f64 ) * ( NANOS_PER_SEC as f64 ) + ( self . nanos . 0 as f64 ) ;
1078
+ let rhs_nanos = ( rhs. secs as f64 ) * ( NANOS_PER_SEC as f64 ) + ( rhs. nanos . 0 as f64 ) ;
1079
+ self_nanos / rhs_nanos
1078
1080
}
1079
1081
1080
1082
/// Divide `Duration` by `Duration` and return `f32`.
@@ -1093,7 +1095,9 @@ impl Duration {
1093
1095
#[ inline]
1094
1096
#[ rustc_const_unstable( feature = "duration_consts_float" , issue = "72440" ) ]
1095
1097
pub const fn div_duration_f32 ( self , rhs : Duration ) -> f32 {
1096
- self . as_secs_f32 ( ) / rhs. as_secs_f32 ( )
1098
+ let self_nanos = ( self . secs as f32 ) * ( NANOS_PER_SEC as f32 ) + ( self . nanos . 0 as f32 ) ;
1099
+ let rhs_nanos = ( rhs. secs as f32 ) * ( NANOS_PER_SEC as f32 ) + ( rhs. nanos . 0 as f32 ) ;
1100
+ self_nanos / rhs_nanos
1097
1101
}
1098
1102
}
1099
1103
0 commit comments