@@ -1084,40 +1084,42 @@ impl Duration {
1084
1084
///
1085
1085
/// # Examples
1086
1086
/// ```
1087
- /// #![feature(div_duration)]
1088
1087
/// use std::time::Duration;
1089
1088
///
1090
1089
/// let dur1 = Duration::new(2, 700_000_000);
1091
1090
/// let dur2 = Duration::new(5, 400_000_000);
1092
1091
/// assert_eq!(dur1.div_duration_f64(dur2), 0.5);
1093
1092
/// ```
1094
- #[ unstable ( feature = "div_duration" , issue = "63139 " ) ]
1093
+ #[ stable ( feature = "div_duration" , since = "CURRENT_RUSTC_VERSION " ) ]
1095
1094
#[ must_use = "this returns the result of the operation, \
1096
1095
without modifying the original"]
1097
1096
#[ inline]
1098
1097
#[ rustc_const_unstable( feature = "duration_consts_float" , issue = "72440" ) ]
1099
1098
pub const fn div_duration_f64 ( self , rhs : Duration ) -> f64 {
1100
- self . as_secs_f64 ( ) / rhs. as_secs_f64 ( )
1099
+ let self_nanos = ( self . secs as f64 ) * ( NANOS_PER_SEC as f64 ) + ( self . nanos . 0 as f64 ) ;
1100
+ let rhs_nanos = ( rhs. secs as f64 ) * ( NANOS_PER_SEC as f64 ) + ( rhs. nanos . 0 as f64 ) ;
1101
+ self_nanos / rhs_nanos
1101
1102
}
1102
1103
1103
1104
/// Divide `Duration` by `Duration` and return `f32`.
1104
1105
///
1105
1106
/// # Examples
1106
1107
/// ```
1107
- /// #![feature(div_duration)]
1108
1108
/// use std::time::Duration;
1109
1109
///
1110
1110
/// let dur1 = Duration::new(2, 700_000_000);
1111
1111
/// let dur2 = Duration::new(5, 400_000_000);
1112
1112
/// assert_eq!(dur1.div_duration_f32(dur2), 0.5);
1113
1113
/// ```
1114
- #[ unstable ( feature = "div_duration" , issue = "63139 " ) ]
1114
+ #[ stable ( feature = "div_duration" , since = "CURRENT_RUSTC_VERSION " ) ]
1115
1115
#[ must_use = "this returns the result of the operation, \
1116
1116
without modifying the original"]
1117
1117
#[ inline]
1118
1118
#[ rustc_const_unstable( feature = "duration_consts_float" , issue = "72440" ) ]
1119
1119
pub const fn div_duration_f32 ( self , rhs : Duration ) -> f32 {
1120
- self . as_secs_f32 ( ) / rhs. as_secs_f32 ( )
1120
+ let self_nanos = ( self . secs as f32 ) * ( NANOS_PER_SEC as f32 ) + ( self . nanos . 0 as f32 ) ;
1121
+ let rhs_nanos = ( rhs. secs as f32 ) * ( NANOS_PER_SEC as f32 ) + ( rhs. nanos . 0 as f32 ) ;
1122
+ self_nanos / rhs_nanos
1121
1123
}
1122
1124
}
1123
1125
0 commit comments