Trait rand::Rand
[−]
[src]
pub trait Rand: Sized { fn rand<R: Rng>(rng: &mut R) -> Self; }
A type that can be randomly generated using an Rng
.
Built-in Implementations
This crate implements Rand
for various primitive types. Assuming the
provided Rng
is well-behaved, these implementations generate values with
the following ranges and distributions:
- Integers (
i32
,u32
,isize
,usize
, etc.): Uniformly distributed over all values of the type. char
: Uniformly distributed over all Unicode scalar values, i.e. all code points in the range0...0x10_FFFF
, except for the range0xD800...0xDFFF
(the surrogate code points). This includes unassigned/reserved code points.bool
: Generatesfalse
ortrue
, each with probability 0.5.- Floating point types (
f32
andf64
): Uniformly distributed in the half-open range[0, 1)
. (TheOpen01
,Closed01
,Exp1
, andStandardNormal
wrapper types produce floating point numbers with alternative ranges or distributions.)
The following aggregate types also implement Rand
as long as their
component types implement it:
- Tuples and arrays: Each element of the tuple or array is generated
independently, using its own
Rand
implementation. Option<T>
: ReturnsNone
with probability 0.5; otherwise generates a randomT
and returnsSome(T)
.
Required Methods
fn rand<R: Rng>(rng: &mut R) -> Self
Generates a random instance of this type using the specified source of randomness.
Implementors
impl Rand for StandardNormal
impl Rand for Exp1
impl Rand for IsaacRng
impl Rand for Isaac64Rng
impl Rand for ChaChaRng
impl Rand for f64
impl Rand for Open01<f64>
impl Rand for Closed01<f64>
impl Rand for f32
impl Rand for Open01<f32>
impl Rand for Closed01<f32>
impl Rand for isize
impl Rand for i8
impl Rand for i16
impl Rand for i32
impl Rand for i64
impl Rand for usize
impl Rand for u8
impl Rand for u16
impl Rand for u32
impl Rand for u64
impl Rand for char
impl Rand for bool
impl Rand for ()
impl<A: Rand> Rand for (A,)
impl<A: Rand, B: Rand> Rand for (A, B)
impl<A: Rand, B: Rand, C: Rand> Rand for (A, B, C)
impl<A: Rand, B: Rand, C: Rand, D: Rand> Rand for (A, B, C, D)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand> Rand for (A, B, C, D, E)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand> Rand for (A, B, C, D, E, F)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand> Rand for (A, B, C, D, E, F, G)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand, H: Rand> Rand for (A, B, C, D, E, F, G, H)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand, H: Rand, I: Rand> Rand for (A, B, C, D, E, F, G, H, I)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand, H: Rand, I: Rand, J: Rand> Rand for (A, B, C, D, E, F, G, H, I, J)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand, H: Rand, I: Rand, J: Rand, K: Rand> Rand for (A, B, C, D, E, F, G, H, I, J, K)
impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand, H: Rand, I: Rand, J: Rand, K: Rand, L: Rand> Rand for (A, B, C, D, E, F, G, H, I, J, K, L)
impl<T> Rand for [T; 0]
impl<T> Rand for [T; 1] where
T: Rand,impl<T> Rand for [T; 2] where
T: Rand,impl<T> Rand for [T; 3] where
T: Rand,impl<T> Rand for [T; 4] where
T: Rand,impl<T> Rand for [T; 5] where
T: Rand,impl<T> Rand for [T; 6] where
T: Rand,impl<T> Rand for [T; 7] where
T: Rand,impl<T> Rand for [T; 8] where
T: Rand,impl<T> Rand for [T; 9] where
T: Rand,impl<T> Rand for [T; 10] where
T: Rand,impl<T> Rand for [T; 11] where
T: Rand,impl<T> Rand for [T; 12] where
T: Rand,impl<T> Rand for [T; 13] where
T: Rand,impl<T> Rand for [T; 14] where
T: Rand,impl<T> Rand for [T; 15] where
T: Rand,impl<T> Rand for [T; 16] where
T: Rand,impl<T> Rand for [T; 17] where
T: Rand,impl<T> Rand for [T; 18] where
T: Rand,impl<T> Rand for [T; 19] where
T: Rand,impl<T> Rand for [T; 20] where
T: Rand,impl<T> Rand for [T; 21] where
T: Rand,impl<T> Rand for [T; 22] where
T: Rand,impl<T> Rand for [T; 23] where
T: Rand,impl<T> Rand for [T; 24] where
T: Rand,impl<T> Rand for [T; 25] where
T: Rand,impl<T> Rand for [T; 26] where
T: Rand,impl<T> Rand for [T; 27] where
T: Rand,impl<T> Rand for [T; 28] where
T: Rand,impl<T> Rand for [T; 29] where
T: Rand,impl<T> Rand for [T; 30] where
T: Rand,impl<T> Rand for [T; 31] where
T: Rand,impl<T> Rand for [T; 32] where
T: Rand,impl<T: Rand> Rand for Option<T>
impl Rand for XorShiftRng