Skip to content

Commit fbf9572

Browse files
authored
Merge pull request #364 from pitdicker/bad_seed
Add never panic guarantee to SeedableRng::from_seed
2 parents ec9adb2 + 722897b commit fbf9572

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

rand_core/src/lib.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,12 @@ pub trait SeedableRng: Sized {
299299
/// reference implementation of the PRNG given equivalent seed; if necessary
300300
/// another constructor replicating behaviour from a reference
301301
/// implementation can be added.
302+
///
303+
/// PRNG implementations should make sure `from_seed` never panics. In the
304+
/// case that some special values (like an all zero seed) are not viable
305+
/// seeds it is preferable to map these to alternative constant value(s),
306+
/// for example `0xBAD5EEDu32` or `0x0DDB1A5E5BAD5EEDu64` ("odd biases? bad
307+
/// seed"). This is assuming only a small number of values must be rejected.
302308
fn from_seed(seed: Self::Seed) -> Self;
303309

304310
/// Create a new PRNG seeded from another `Rng`.

0 commit comments

Comments
 (0)