diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-01-05 18:37:18 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-01-05 18:37:18 -0800 |
| commit | ca40fe0f5e8085070f1bb678cba1ea85a09942b1 (patch) | |
| tree | 29b7ce86a3c8734e3d70b08694dc1a54033447fa /src/libstd | |
| parent | 38d81baec8c02847526f5c440434b59b22ebeaa5 (diff) | |
| parent | 6ca1f0c6ea61760138c7e3cb4c14fa3be71c7414 (diff) | |
| download | rust-ca40fe0f5e8085070f1bb678cba1ea85a09942b1.tar.gz rust-ca40fe0f5e8085070f1bb678cba1ea85a09942b1.zip | |
rollup merge of #20483: nagisa/rng-copy
* Implement (derive) `Clone` for `ChaChaRng`, `Isaac*Rng`, `StdRng` and `ThreadRng`; * Derive `XorShiftRng` `Clone` implementation instead of implementing it explicitly. `OsRng` is the only Rng which does not implement `Clone` or `Copy` after this patch because of its dependence on `Reader`. r? @huonw I guess?
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/rand/mod.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libstd/rand/mod.rs b/src/libstd/rand/mod.rs index aa28c8266d1..cadaae5de5c 100644 --- a/src/libstd/rand/mod.rs +++ b/src/libstd/rand/mod.rs @@ -245,7 +245,7 @@ pub mod reader; /// The standard RNG. This is designed to be efficient on the current /// platform. -#[derive(Copy)] +#[deriving(Copy, Clone)] pub struct StdRng { rng: IsaacWordRng, } @@ -322,6 +322,7 @@ static THREAD_RNG_RESEED_THRESHOLD: uint = 32_768; type ThreadRngInner = reseeding::ReseedingRng<StdRng, ThreadRngReseeder>; /// The thread-local RNG. +#[deriving(Clone)] pub struct ThreadRng { rng: Rc<RefCell<ThreadRngInner>>, } |
