@@ -21,7 +21,6 @@ use rand_core::{CryptoRng, RngCore, SeedableRng, TryCryptoRng, TryRngCore};
2121/// `ReseedingRng` reseeds the underlying PRNG in the following cases: 
2222/// 
2323/// - On a manual call to [`reseed()`]. 
24- /// - After `clone()`, the clone will be reseeded on first use. 
2524/// - After the PRNG has generated a configurable number of random bytes. 
2625/// 
2726/// # When should reseeding after a fixed number of generated bytes be used? 
@@ -62,9 +61,6 @@ use rand_core::{CryptoRng, RngCore, SeedableRng, TryCryptoRng, TryRngCore};
6261/// let mut reseeding_rng = ReseedingRng::<ChaCha20Core, _>::new(0, OsRng).unwrap(); 
6362/// 
6463/// println!("{}", reseeding_rng.random::<u64>()); 
65- /// 
66- /// let mut cloned_rng = reseeding_rng.clone(); 
67- /// assert!(reseeding_rng.random::<u64>() != cloned_rng.random::<u64>()); 
6864/// ``` 
6965/// 
7066/// [`BlockRngCore`]: rand_core::block::BlockRngCore 
@@ -124,18 +120,6 @@ where
124120    } 
125121} 
126122
127- impl < R ,  Rsdr >  Clone  for  ReseedingRng < R ,  Rsdr > 
128- where 
129-     R :  BlockRngCore  + SeedableRng  + Clone , 
130-     Rsdr :  TryRngCore  + Clone , 
131- { 
132-     fn  clone ( & self )  -> ReseedingRng < R ,  Rsdr >  { 
133-         // Recreating `BlockRng` seems easier than cloning it and resetting 
134-         // the index. 
135-         ReseedingRng ( BlockRng :: new ( self . 0 . core . clone ( ) ) ) 
136-     } 
137- } 
138- 
139123impl < R ,  Rsdr >  CryptoRng  for  ReseedingRng < R ,  Rsdr > 
140124where 
141125    R :  BlockRngCore < Item  = u32 >  + SeedableRng  + CryptoBlockRng , 
@@ -228,21 +212,6 @@ where
228212    } 
229213} 
230214
231- impl < R ,  Rsdr >  Clone  for  ReseedingCore < R ,  Rsdr > 
232- where 
233-     R :  BlockRngCore  + SeedableRng  + Clone , 
234-     Rsdr :  TryRngCore  + Clone , 
235- { 
236-     fn  clone ( & self )  -> ReseedingCore < R ,  Rsdr >  { 
237-         ReseedingCore  { 
238-             inner :  self . inner . clone ( ) , 
239-             reseeder :  self . reseeder . clone ( ) , 
240-             threshold :  self . threshold , 
241-             bytes_until_reseed :  0 ,  // reseed clone on first use 
242-         } 
243-     } 
244- } 
245- 
246215impl < R ,  Rsdr >  CryptoBlockRng  for  ReseedingCore < R ,  Rsdr > 
247216where 
248217    R :  BlockRngCore < Item  = u32 >  + SeedableRng  + CryptoBlockRng , 
@@ -277,19 +246,4 @@ mod test {
277246            assert_eq ! ( buf,  seq) ; 
278247        } 
279248    } 
280- 
281-     #[ test]  
282-     #[ allow( clippy:: redundant_clone) ]  
283-     fn  test_clone_reseeding ( )  { 
284-         let  zero = const_rng ( 0 ) ; 
285-         let  mut  rng1 = ReseedingRng :: < Core ,  _ > :: new ( 32  *  4 ,  zero) . unwrap ( ) ; 
286- 
287-         let  first:  u32  = rng1. random ( ) ; 
288-         for  _ in  0 ..10  { 
289-             let  _ = rng1. random :: < u32 > ( ) ; 
290-         } 
291- 
292-         let  mut  rng2 = rng1. clone ( ) ; 
293-         assert_eq ! ( first,  rng2. random:: <u32 >( ) ) ; 
294-     } 
295249} 
0 commit comments