@@ -255,6 +255,7 @@ use core::mem;
255
255
#[ cfg( feature="std" ) ] use std:: cell:: RefCell ;
256
256
#[ cfg( feature="std" ) ] use std:: io;
257
257
#[ cfg( feature="std" ) ] use std:: rc:: Rc ;
258
+ #[ cfg( all( feature="alloc" , not( feature="std" ) ) ) ] use alloc:: boxed:: Box ;
258
259
259
260
// external rngs
260
261
pub use jitter:: JitterRng ;
@@ -624,8 +625,6 @@ impl<'a, R: ?Sized> Rng for &'a mut R where R: Rng {
624
625
}
625
626
}
626
627
627
- #[ cfg( all( feature="alloc" , not( feature="std" ) ) ) ]
628
- use alloc:: boxed:: Box ;
629
628
#[ cfg( any( feature="std" , feature="alloc" ) ) ]
630
629
impl < R : ?Sized > Rng for Box < R > where R : Rng {
631
630
fn next_u32 ( & mut self ) -> u32 {
@@ -984,8 +983,11 @@ pub fn sample<T, I, R>(rng: &mut R, iterable: I, amount: usize) -> Vec<T>
984
983
#[ cfg( test) ]
985
984
mod test {
986
985
use impls;
987
- use super :: { Rng , thread_rng, random, SeedableRng , StdRng , weak_rng} ;
988
- use std:: iter:: repeat;
986
+ #[ cfg( feature="std" ) ]
987
+ use super :: { random, thread_rng, weak_rng} ;
988
+ use super :: { Rng , SeedableRng , StdRng } ;
989
+ #[ cfg( feature="alloc" ) ]
990
+ use alloc:: boxed:: Box ;
989
991
990
992
pub struct TestRng < R > { inner : R }
991
993
@@ -1041,8 +1043,9 @@ mod test {
1041
1043
let lengths = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ,
1042
1044
80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 ] ;
1043
1045
for & n in lengths. iter ( ) {
1044
- let mut v = repeat ( 0u8 ) . take ( n) . collect :: < Vec < _ > > ( ) ;
1045
- r. fill_bytes ( & mut v) ;
1046
+ let mut buffer = [ 0u8 ; 87 ] ;
1047
+ let mut v = & mut buffer[ 0 ..n] ;
1048
+ r. fill_bytes ( v) ;
1046
1049
1047
1050
// use this to get nicer error messages.
1048
1051
for ( i, & byte) in v. iter ( ) . enumerate ( ) {
@@ -1139,6 +1142,7 @@ mod test {
1139
1142
}
1140
1143
1141
1144
#[ test]
1145
+ #[ cfg( feature="std" ) ]
1142
1146
fn test_thread_rng ( ) {
1143
1147
let mut r = thread_rng ( ) ;
1144
1148
r. gen :: < i32 > ( ) ;
@@ -1150,6 +1154,7 @@ mod test {
1150
1154
}
1151
1155
1152
1156
#[ test]
1157
+ #[ cfg( any( feature="std" , feature="alloc" ) ) ]
1153
1158
fn test_rng_trait_object ( ) {
1154
1159
let mut rng = rng ( 109 ) ;
1155
1160
{
@@ -1175,6 +1180,7 @@ mod test {
1175
1180
}
1176
1181
1177
1182
#[ test]
1183
+ #[ cfg( feature="std" ) ]
1178
1184
fn test_random ( ) {
1179
1185
// not sure how to test this aside from just getting some values
1180
1186
let _n : usize = random ( ) ;
@@ -1214,6 +1220,7 @@ mod test {
1214
1220
}
1215
1221
1216
1222
#[ test]
1223
+ #[ cfg( feature="std" ) ]
1217
1224
fn test_weak_rng ( ) {
1218
1225
let s = weak_rng ( ) . gen_iter :: < usize > ( ) . take ( 256 ) . collect :: < Vec < usize > > ( ) ;
1219
1226
let mut ra: StdRng = SeedableRng :: from_seed ( & s[ ..] ) ;
0 commit comments