@@ -76,19 +76,21 @@ impl<R: Rng, Rsdr: Reseeder<R>> Rng for ReseedingRng<R, Rsdr> {
76
76
}
77
77
}
78
78
79
- impl < S , R : SeedableRng < S > , Rsdr : Reseeder < R > + Default > SeedableRng < S > for ReseedingRng < R , Rsdr > {
80
- fn reseed ( & mut self , seed : S ) {
79
+ impl < S , R : SeedableRng < S > , Rsdr : Reseeder < R > >
80
+ SeedableRng < ( Rsdr , S ) > for ReseedingRng < R , Rsdr > {
81
+ fn reseed ( & mut self , ( rsdr, seed) : ( Rsdr , S ) ) {
81
82
self . rng . reseed ( seed) ;
83
+ self . reseeder = rsdr;
82
84
self . bytes_generated = 0 ;
83
85
}
84
- /// Create a new `ReseedingRng` from the given seed. This uses
85
- /// default values for both `generation_threshold` and `reseeder `.
86
- fn from_seed ( seed : S ) -> ReseedingRng < R , Rsdr > {
86
+ /// Create a new `ReseedingRng` from the given reseeder and
87
+ /// seed. This uses a default value for `generation_threshold `.
88
+ fn from_seed ( ( rsdr , seed) : ( Rsdr , S ) ) -> ReseedingRng < R , Rsdr > {
87
89
ReseedingRng {
88
90
rng : SeedableRng :: from_seed ( seed) ,
89
91
generation_threshold : DEFAULT_GENERATION_THRESHOLD ,
90
92
bytes_generated : 0 ,
91
- reseeder : Default :: default ( )
93
+ reseeder : rsdr
92
94
}
93
95
}
94
96
}
@@ -184,17 +186,17 @@ mod test {
184
186
185
187
#[ test]
186
188
fn test_rng_seeded ( ) {
187
- let mut ra: MyRng = SeedableRng :: from_seed ( 2 ) ;
188
- let mut rb: MyRng = SeedableRng :: from_seed ( 2 ) ;
189
+ let mut ra: MyRng = SeedableRng :: from_seed ( ( ReseedWithDefault , 2 ) ) ;
190
+ let mut rb: MyRng = SeedableRng :: from_seed ( ( ReseedWithDefault , 2 ) ) ;
189
191
assert_eq ! ( ra. gen_ascii_str( 100 u) , rb. gen_ascii_str( 100 u) ) ;
190
192
}
191
193
192
194
#[ test]
193
195
fn test_rng_reseed ( ) {
194
- let mut r: MyRng = SeedableRng :: from_seed ( 3 ) ;
196
+ let mut r: MyRng = SeedableRng :: from_seed ( ( ReseedWithDefault , 3 ) ) ;
195
197
let string1 = r. gen_ascii_str ( 100 ) ;
196
198
197
- r. reseed ( 3 ) ;
199
+ r. reseed ( ( ReseedWithDefault , 3 ) ) ;
198
200
199
201
let string2 = r. gen_ascii_str ( 100 ) ;
200
202
assert_eq ! ( string1, string2) ;
0 commit comments