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 range 0...0x10_FFFF, except for the range 0xD800...0xDFFF (the surrogate code points). This includes unassigned/reserved code points.
  • bool: Generates false or true, each with probability 0.5.
  • Floating point types (f32 and f64): Uniformly distributed in the half-open range [0, 1). (The Open01, Closed01, Exp1, and StandardNormal 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>: Returns None with probability 0.5; otherwise generates a random T and returns Some(T).

Required Methods

Generates a random instance of this type using the specified source of randomness.

Implementations on Foreign Types

impl Rand for f64
[src]

[src]

Generate a floating point number in the half-open interval [0,1).

See Closed01 for the closed interval [0,1], and Open01 for the open interval (0,1).

impl Rand for f32
[src]

[src]

Generate a floating point number in the half-open interval [0,1).

See Closed01 for the closed interval [0,1], and Open01 for the open interval (0,1).

impl Rand for isize
[src]

[src]

impl Rand for i8
[src]

[src]

impl Rand for i16
[src]

[src]

impl Rand for i32
[src]

[src]

impl Rand for i64
[src]

[src]

impl Rand for usize
[src]

[src]

impl Rand for u8
[src]

[src]

impl Rand for u16
[src]

[src]

impl Rand for u32
[src]

[src]

impl Rand for u64
[src]

[src]

impl Rand for char
[src]

[src]

impl Rand for bool
[src]

[src]

impl Rand for ()
[src]

[src]

impl<A: Rand> Rand for (A,)
[src]

[src]

impl<A: Rand, B: Rand> Rand for (A, B)
[src]

[src]

impl<A: Rand, B: Rand, C: Rand> Rand for (A, B, C)
[src]

[src]

impl<A: Rand, B: Rand, C: Rand, D: Rand> Rand for (A, B, C, D)
[src]

[src]

impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand> Rand for (A, B, C, D, E)
[src]

[src]

impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand> Rand for (A, B, C, D, E, F)
[src]

[src]

impl<A: Rand, B: Rand, C: Rand, D: Rand, E: Rand, F: Rand, G: Rand> Rand for (A, B, C, D, E, F, G)
[src]

[src]

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)
[src]

[src]

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)
[src]

[src]

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)
[src]

[src]

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)
[src]

[src]

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)
[src]

[src]

impl<T> Rand for [T; 0]
[src]

[src]

impl<T> Rand for [T; 1] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 2] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 3] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 4] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 5] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 6] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 7] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 8] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 9] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 10] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 11] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 12] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 13] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 14] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 15] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 16] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 17] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 18] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 19] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 20] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 21] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 22] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 23] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 24] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 25] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 26] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 27] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 28] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 29] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 30] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 31] where
    T: Rand
[src]

[src]

impl<T> Rand for [T; 32] where
    T: Rand
[src]

[src]

impl<T: Rand> Rand for Option<T>
[src]

[src]

Implementors