Skip to content

Commit ecb9647

Browse files
committed
Rename NewRng::new → FromEntropy::from_entropy
1 parent 979306d commit ecb9647

File tree

12 files changed

+85
-77
lines changed

12 files changed

+85
-77
lines changed

UPDATING.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ A few methods from the old `Rng` have been removed or deprecated:
7777

7878
##### New randomly-initialised PRNGs
7979

80-
A new trait has been added: `NewRng`. This is automatically implemented for any
81-
type supporting `SeedableRng`, and provides construction from fresh, strong
80+
A new trait has been added: `FromEntropy`. This is automatically implemented for
81+
any type supporting `SeedableRng`, and provides construction from fresh, strong
8282
entropy:
8383

8484
```rust
85-
use rand::{ChaChaRng, NewRng};
85+
use rand::{ChaChaRng, FromEntropy};
8686

87-
let mut rng = ChaChaRng::new();
87+
let mut rng = ChaChaRng::from_entropy();
8888
```
8989

9090
##### Seeding PRNGs
@@ -142,15 +142,15 @@ The following use the new error type:
142142
- `RngCore::try_fill_bytes`
143143
- `Rng::try_fill`
144144
- `OsRng::new`
145-
- `jitter::new`
145+
- `JitterRng::new`
146146

147147
### External generators
148148

149149
We have a new generator, `EntropyRng`, which wraps `OsRng` and `JitterRng`
150150
(preferring to use the former, but falling back to the latter if necessary).
151151
This allows easy construction with fallback via `SeedableRng::from_rng`,
152152
e.g. `IsaacRng::from_rng(EntropyRng::new())?`. This is equivalent to using
153-
`NewRng` except for error handling.
153+
`FromEntropy` except for error handling.
154154

155155
It is recommended to use `EntropyRng` over `OsRng` to avoid errors on platforms
156156
with broken system generator, but it should be noted that the `JitterRng`
@@ -205,7 +205,7 @@ The `random()` function has been removed; users may simply use
205205
`thread_rng().gen()` instead or may choose to cache
206206
`let mut rng = thread_rng();` locally, or even use a different generator.
207207

208-
`weak_rng()` has been deprecated; use `SmallRng::new()` instead.
208+
`weak_rng()` has been deprecated; use `SmallRng::from_entropy()` instead.
209209

210210
### Distributions
211211

benches/distributions.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ const RAND_BENCH_N: u64 = 1000;
99
use std::mem::size_of;
1010
use test::{black_box, Bencher};
1111

12-
use rand::{Rng, NewRng, XorShiftRng};
12+
use rand::{Rng, FromEntropy, XorShiftRng};
1313
use rand::distributions::*;
1414

1515
macro_rules! distr_int {
1616
($fnn:ident, $ty:ty, $distr:expr) => {
1717
#[bench]
1818
fn $fnn(b: &mut Bencher) {
19-
let mut rng = XorShiftRng::new();
19+
let mut rng = XorShiftRng::from_entropy();
2020
let distr = $distr;
2121

2222
b.iter(|| {
@@ -36,7 +36,7 @@ macro_rules! distr_float {
3636
($fnn:ident, $ty:ty, $distr:expr) => {
3737
#[bench]
3838
fn $fnn(b: &mut Bencher) {
39-
let mut rng = XorShiftRng::new();
39+
let mut rng = XorShiftRng::from_entropy();
4040
let distr = $distr;
4141

4242
b.iter(|| {
@@ -56,7 +56,7 @@ macro_rules! distr {
5656
($fnn:ident, $ty:ty, $distr:expr) => {
5757
#[bench]
5858
fn $fnn(b: &mut Bencher) {
59-
let mut rng = XorShiftRng::new();
59+
let mut rng = XorShiftRng::from_entropy();
6060
let distr = $distr;
6161

6262
b.iter(|| {
@@ -111,7 +111,7 @@ macro_rules! gen_range_int {
111111
($fnn:ident, $ty:ident, $low:expr, $high:expr) => {
112112
#[bench]
113113
fn $fnn(b: &mut Bencher) {
114-
let mut rng = XorShiftRng::new();
114+
let mut rng = XorShiftRng::from_entropy();
115115

116116
b.iter(|| {
117117
let mut high = $high;
@@ -137,7 +137,7 @@ gen_range_int!(gen_range_i128, i128, -12345678901234i128, 123_456_789_123_456_78
137137

138138
#[bench]
139139
fn dist_iter(b: &mut Bencher) {
140-
let mut rng = XorShiftRng::new();
140+
let mut rng = XorShiftRng::from_entropy();
141141
let distr = Normal::new(-2.71828, 3.14159);
142142
let mut iter = distr.sample_iter(&mut rng);
143143

benches/generators.rs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const BYTES_LEN: usize = 1024;
99
use std::mem::size_of;
1010
use test::{black_box, Bencher};
1111

12-
use rand::{RngCore, Rng, SeedableRng, NewRng};
12+
use rand::{RngCore, Rng, SeedableRng, FromEntropy};
1313
use rand::{StdRng, SmallRng, OsRng, EntropyRng, ReseedingRng};
1414
use rand::prng::{XorShiftRng, Hc128Rng, IsaacRng, Isaac64Rng, ChaChaRng};
1515
use rand::prng::hc128::Hc128Core;
@@ -33,12 +33,12 @@ macro_rules! gen_bytes {
3333
}
3434
}
3535

36-
gen_bytes!(gen_bytes_xorshift, XorShiftRng::new());
37-
gen_bytes!(gen_bytes_hc128, Hc128Rng::new());
38-
gen_bytes!(gen_bytes_isaac, IsaacRng::new());
39-
gen_bytes!(gen_bytes_isaac64, Isaac64Rng::new());
40-
gen_bytes!(gen_bytes_std, StdRng::new());
41-
gen_bytes!(gen_bytes_small, SmallRng::new());
36+
gen_bytes!(gen_bytes_xorshift, XorShiftRng::from_entropy());
37+
gen_bytes!(gen_bytes_hc128, Hc128Rng::from_entropy());
38+
gen_bytes!(gen_bytes_isaac, IsaacRng::from_entropy());
39+
gen_bytes!(gen_bytes_isaac64, Isaac64Rng::from_entropy());
40+
gen_bytes!(gen_bytes_std, StdRng::from_entropy());
41+
gen_bytes!(gen_bytes_small, SmallRng::from_entropy());
4242
gen_bytes!(gen_bytes_os, OsRng::new().unwrap());
4343

4444
macro_rules! gen_uint {
@@ -58,20 +58,20 @@ macro_rules! gen_uint {
5858
}
5959
}
6060

61-
gen_uint!(gen_u32_xorshift, u32, XorShiftRng::new());
62-
gen_uint!(gen_u32_hc128, u32, Hc128Rng::new());
63-
gen_uint!(gen_u32_isaac, u32, IsaacRng::new());
64-
gen_uint!(gen_u32_isaac64, u32, Isaac64Rng::new());
65-
gen_uint!(gen_u32_std, u32, StdRng::new());
66-
gen_uint!(gen_u32_small, u32, SmallRng::new());
61+
gen_uint!(gen_u32_xorshift, u32, XorShiftRng::from_entropy());
62+
gen_uint!(gen_u32_hc128, u32, Hc128Rng::from_entropy());
63+
gen_uint!(gen_u32_isaac, u32, IsaacRng::from_entropy());
64+
gen_uint!(gen_u32_isaac64, u32, Isaac64Rng::from_entropy());
65+
gen_uint!(gen_u32_std, u32, StdRng::from_entropy());
66+
gen_uint!(gen_u32_small, u32, SmallRng::from_entropy());
6767
gen_uint!(gen_u32_os, u32, OsRng::new().unwrap());
6868

69-
gen_uint!(gen_u64_xorshift, u64, XorShiftRng::new());
70-
gen_uint!(gen_u64_hc128, u64, Hc128Rng::new());
71-
gen_uint!(gen_u64_isaac, u64, IsaacRng::new());
72-
gen_uint!(gen_u64_isaac64, u64, Isaac64Rng::new());
73-
gen_uint!(gen_u64_std, u64, StdRng::new());
74-
gen_uint!(gen_u64_small, u64, SmallRng::new());
69+
gen_uint!(gen_u64_xorshift, u64, XorShiftRng::from_entropy());
70+
gen_uint!(gen_u64_hc128, u64, Hc128Rng::from_entropy());
71+
gen_uint!(gen_u64_isaac, u64, IsaacRng::from_entropy());
72+
gen_uint!(gen_u64_isaac64, u64, Isaac64Rng::from_entropy());
73+
gen_uint!(gen_u64_std, u64, StdRng::from_entropy());
74+
gen_uint!(gen_u64_small, u64, SmallRng::from_entropy());
7575
gen_uint!(gen_u64_os, u64, OsRng::new().unwrap());
7676

7777
// Do not test JitterRng like the others by running it RAND_BENCH_N times per,
@@ -89,7 +89,7 @@ macro_rules! init_gen {
8989
($fnn:ident, $gen:ident) => {
9090
#[bench]
9191
fn $fnn(b: &mut Bencher) {
92-
let mut rng = XorShiftRng::new();
92+
let mut rng = XorShiftRng::from_entropy();
9393
b.iter(|| {
9494
let r2 = $gen::from_rng(&mut rng).unwrap();
9595
black_box(r2);
@@ -115,7 +115,7 @@ macro_rules! chacha_rounds {
115115
($fn1:ident, $fn2:ident, $fn3:ident, $rounds:expr) => {
116116
#[bench]
117117
fn $fn1(b: &mut Bencher) {
118-
let mut rng = ChaChaRng::new();
118+
let mut rng = ChaChaRng::from_entropy();
119119
rng.set_rounds($rounds);
120120
let mut buf = [0u8; BYTES_LEN];
121121
b.iter(|| {
@@ -129,7 +129,7 @@ macro_rules! chacha_rounds {
129129

130130
#[bench]
131131
fn $fn2(b: &mut Bencher) {
132-
let mut rng = ChaChaRng::new();
132+
let mut rng = ChaChaRng::from_entropy();
133133
rng.set_rounds($rounds);
134134
b.iter(|| {
135135
let mut accum: u32 = 0;
@@ -143,7 +143,7 @@ macro_rules! chacha_rounds {
143143

144144
#[bench]
145145
fn $fn3(b: &mut Bencher) {
146-
let mut rng = ChaChaRng::new();
146+
let mut rng = ChaChaRng::from_entropy();
147147
rng.set_rounds($rounds);
148148
b.iter(|| {
149149
let mut accum: u64 = 0;
@@ -167,7 +167,7 @@ const RESEEDING_THRESHOLD: u64 = 1024*1024*1024; // something high enough to get
167167

168168
#[bench]
169169
fn reseeding_hc128_bytes(b: &mut Bencher) {
170-
let mut rng = ReseedingRng::new(Hc128Core::new(),
170+
let mut rng = ReseedingRng::new(Hc128Core::from_entropy(),
171171
RESEEDING_THRESHOLD,
172172
EntropyRng::new());
173173
let mut buf = [0u8; BYTES_LEN];
@@ -184,7 +184,7 @@ macro_rules! reseeding_uint {
184184
($fnn:ident, $ty:ty) => {
185185
#[bench]
186186
fn $fnn(b: &mut Bencher) {
187-
let mut rng = ReseedingRng::new(Hc128Core::new(),
187+
let mut rng = ReseedingRng::new(Hc128Core::from_entropy(),
188188
RESEEDING_THRESHOLD,
189189
EntropyRng::new());
190190
b.iter(|| {

rand_core/src/lib.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ pub mod le;
9898
/// original (i.e. all deterministic PRNGs but not external generators)
9999
/// - *never* implement `Copy` (accidental copies may cause repeated values)
100100
/// - also *do not* implement `Default`, but instead implement `SeedableRng`
101-
/// thus allowing use of `rand::NewRng` (which is automatically implemented)
101+
/// thus allowing use of `rand::FromEntropy` (which is automatically implemented)
102102
/// - `Eq` and `PartialEq` could be implemented, but are probably not useful
103103
///
104104
/// # Example
@@ -270,10 +270,11 @@ pub trait CryptoRng {}
270270
/// This trait encapsulates the low-level functionality common to all
271271
/// pseudo-random number generators (PRNGs, or algorithmic generators).
272272
///
273-
/// The [`rand::NewRng`] trait is automatically implemented for every type
274-
/// implementing `SeedableRng`, providing a convenient `new()` method.
273+
/// The [`rand::FromEntropy`] trait is automatically implemented for every type
274+
/// implementing `SeedableRng`, providing a convenient `from_entropy()`
275+
/// constructor.
275276
///
276-
/// [`rand::NewRng`]: ../rand/trait.NewRng.html
277+
/// [`rand::FromEntropy`]: ../rand/trait.FromEntropy.html
277278
pub trait SeedableRng: Sized {
278279
/// Seed type, which is restricted to types mutably-dereferencable as `u8`
279280
/// arrays (we recommend `[u8; N]` for some `N`).
@@ -348,7 +349,8 @@ pub trait SeedableRng: Sized {
348349
/// Create a new PRNG seeded from another `Rng`.
349350
///
350351
/// This is the recommended way to initialize PRNGs with fresh entropy. The
351-
/// [`NewRng`] trait provides a convenient new method based on `from_rng`.
352+
/// [`FromEntropy`] trait provides a convenient `from_entropy` method
353+
/// based on `from_rng`.
352354
///
353355
/// Usage of this method is not recommended when reproducibility is required
354356
/// since implementing PRNGs are not required to fix Endianness and are
@@ -374,7 +376,7 @@ pub trait SeedableRng: Sized {
374376
/// PRNG implementations are allowed to assume that a good RNG is provided
375377
/// for seeding, and that it is cryptographically secure when appropriate.
376378
///
377-
/// [`NewRng`]: ../rand/trait.NewRng.html
379+
/// [`FromEntropy`]: ../rand/trait.FromEntropy.html
378380
/// [`OsRng`]: ../rand/os/struct.OsRng.html
379381
fn from_rng<R: RngCore>(mut rng: R) -> Result<Self, Error> {
380382
let mut seed = Self::Seed::default();

src/distributions/exponential.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ use distributions::{ziggurat, ziggurat_tables, Distribution};
3030
///
3131
/// # Example
3232
/// ```rust
33-
/// use rand::{NewRng, SmallRng, Rng};
33+
/// use rand::{FromEntropy, SmallRng, Rng};
3434
/// use rand::distributions::Exp1;
3535
///
36-
/// let val: f64 = SmallRng::new().sample(Exp1);
36+
/// let val: f64 = SmallRng::from_entropy().sample(Exp1);
3737
/// println!("{}", val);
3838
/// ```
3939
#[derive(Clone, Copy, Debug)]

src/distributions/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,10 @@ impl<'a, T, D: Distribution<T>> Distribution<T> for &'a D {
244244
///
245245
/// # Example
246246
/// ```rust
247-
/// use rand::{NewRng, SmallRng, Rng};
247+
/// use rand::{FromEntropy, SmallRng, Rng};
248248
/// use rand::distributions::Standard;
249249
///
250-
/// let val: f32 = SmallRng::new().sample(Standard);
250+
/// let val: f32 = SmallRng::from_entropy().sample(Standard);
251251
/// println!("f32 from (0,1): {}", val);
252252
/// ```
253253
///

src/distributions/normal.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ use distributions::{ziggurat, ziggurat_tables, Distribution};
2828
///
2929
/// # Example
3030
/// ```rust
31-
/// use rand::{NewRng, SmallRng, Rng};
31+
/// use rand::{FromEntropy, SmallRng, Rng};
3232
/// use rand::distributions::StandardNormal;
3333
///
34-
/// let val: f64 = SmallRng::new().sample(StandardNormal);
34+
/// let val: f64 = SmallRng::from_entropy().sample(StandardNormal);
3535
/// println!("{}", val);
3636
/// ```
3737
#[derive(Clone, Copy, Debug)]

0 commit comments

Comments
 (0)