1
- use core:: num:: { Saturating , Wrapping } ;
1
+ use core:: num:: Wrapping ;
2
2
use core:: ops:: { Add , Mul } ;
3
3
4
+ #[ cfg( has_num_saturating) ]
5
+ use core:: num:: Saturating ;
6
+
4
7
/// Defines an additive identity element for `Self`.
5
8
///
6
9
/// # Laws
95
98
const ZERO : Self = Wrapping ( T :: ZERO ) ;
96
99
}
97
100
101
+ #[ cfg( has_num_saturating) ]
98
102
impl < T : Zero > Zero for Saturating < T >
99
103
where
100
104
Saturating < T > : Add < Output = Saturating < T > > ,
@@ -112,6 +116,7 @@ where
112
116
}
113
117
}
114
118
119
+ #[ cfg( has_num_saturating) ]
115
120
impl < T : ConstZero > ConstZero for Saturating < T >
116
121
where
117
122
Saturating < T > : Add < Output = Saturating < T > > ,
@@ -220,6 +225,7 @@ where
220
225
const ONE : Self = Wrapping ( T :: ONE ) ;
221
226
}
222
227
228
+ #[ cfg( has_num_saturating) ]
223
229
impl < T : One > One for Saturating < T >
224
230
where
225
231
Saturating < T > : Mul < Output = Saturating < T > > ,
@@ -233,6 +239,7 @@ where
233
239
}
234
240
}
235
241
242
+ #[ cfg( has_num_saturating) ]
236
243
impl < T : ConstOne > ConstOne for Saturating < T >
237
244
where
238
245
Saturating < T > : Mul < Output = Saturating < T > > ,
@@ -282,6 +289,7 @@ fn wrapping_is_one() {
282
289
}
283
290
284
291
#[ test]
292
+ #[ cfg( has_num_saturating) ]
285
293
fn saturating_identities ( ) {
286
294
macro_rules! test_saturating_identities {
287
295
( $( $t: ty) +) => {
@@ -298,11 +306,13 @@ fn saturating_identities() {
298
306
}
299
307
300
308
#[ test]
309
+ #[ cfg( has_num_saturating) ]
301
310
fn saturating_is_zero ( ) {
302
311
fn require_zero < T : Zero > ( _: & T ) { }
303
312
require_zero ( & Saturating ( 42 ) ) ;
304
313
}
305
314
#[ test]
315
+ #[ cfg( has_num_saturating) ]
306
316
fn saturating_is_one ( ) {
307
317
fn require_one < T : One > ( _: & T ) { }
308
318
require_one ( & Saturating ( 42 ) ) ;
0 commit comments