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: Generatesfalseortrue, each with probability 0.5.- Floating point types (
f32andf64): Uniformly distributed in the half-open range[0, 1). (TheOpen01,Closed01,Exp1, andStandardNormalwrapper 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
Randimplementation. Option<T>: ReturnsNonewith probability 0.5; otherwise generates a randomTand 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 StandardNormalimpl Rand for Exp1impl Rand for IsaacRngimpl Rand for Isaac64Rngimpl Rand for ChaChaRngimpl Rand for f64impl Rand for Open01<f64>impl Rand for Closed01<f64>impl Rand for f32impl Rand for Open01<f32>impl Rand for Closed01<f32>impl Rand for isizeimpl Rand for i8impl Rand for i16impl Rand for i32impl Rand for i64impl Rand for usizeimpl Rand for u8impl Rand for u16impl Rand for u32impl Rand for u64impl Rand for charimpl Rand for boolimpl 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