Trait RandomSpec

Source
pub trait RandomSpec<T>: Sized {
    // Required method
    fn rand(&self, rng: &mut Xorshift) -> T;

    // Provided method
    fn rand_iter(self, rng: &mut Xorshift) -> RandIter<'_, T, Self>  { ... }
}
Expand description

Trait for spec of generating random value.

Required Methods§

Source

fn rand(&self, rng: &mut Xorshift) -> T

Return a random value.

Provided Methods§

Source

fn rand_iter(self, rng: &mut Xorshift) -> RandIter<'_, T, Self>

Return an iterator that generates random values.

Examples found in repository?
crates/competitive/src/tools/random_generator.rs (line 33)
29    pub fn random_iter<T, R>(&mut self, spec: R) -> RandIter<'_, T, R>
30    where
31        R: RandomSpec<T>,
32    {
33        spec.rand_iter(self)
34    }

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl RandomSpec<bool> for bool

Source§

fn rand(&self, _rng: &mut Xorshift) -> bool

Source§

impl RandomSpec<char> for char

Source§

fn rand(&self, _rng: &mut Xorshift) -> char

Source§

impl RandomSpec<i8> for i8

Source§

fn rand(&self, _rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i8> for Range<i8>

Source§

fn rand(&self, rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i8> for RangeFrom<i8>

Source§

fn rand(&self, rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i8> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i8> for RangeInclusive<i8>

Source§

fn rand(&self, rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i8> for RangeTo<i8>

Source§

fn rand(&self, rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i8> for RangeToInclusive<i8>

Source§

fn rand(&self, rng: &mut Xorshift) -> i8

Source§

impl RandomSpec<i16> for i16

Source§

fn rand(&self, _rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i16> for Range<i16>

Source§

fn rand(&self, rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i16> for RangeFrom<i16>

Source§

fn rand(&self, rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i16> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i16> for RangeInclusive<i16>

Source§

fn rand(&self, rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i16> for RangeTo<i16>

Source§

fn rand(&self, rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i16> for RangeToInclusive<i16>

Source§

fn rand(&self, rng: &mut Xorshift) -> i16

Source§

impl RandomSpec<i32> for i32

Source§

fn rand(&self, _rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i32> for Range<i32>

Source§

fn rand(&self, rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i32> for RangeFrom<i32>

Source§

fn rand(&self, rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i32> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i32> for RangeInclusive<i32>

Source§

fn rand(&self, rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i32> for RangeTo<i32>

Source§

fn rand(&self, rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i32> for RangeToInclusive<i32>

Source§

fn rand(&self, rng: &mut Xorshift) -> i32

Source§

impl RandomSpec<i64> for i64

Source§

fn rand(&self, _rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i64> for Range<i64>

Source§

fn rand(&self, rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i64> for RangeFrom<i64>

Source§

fn rand(&self, rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i64> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i64> for RangeInclusive<i64>

Source§

fn rand(&self, rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i64> for RangeTo<i64>

Source§

fn rand(&self, rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i64> for RangeToInclusive<i64>

Source§

fn rand(&self, rng: &mut Xorshift) -> i64

Source§

impl RandomSpec<i128> for i128

Source§

fn rand(&self, _rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<i128> for Range<i128>

Source§

fn rand(&self, rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<i128> for RangeFrom<i128>

Source§

fn rand(&self, rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<i128> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<i128> for RangeInclusive<i128>

Source§

fn rand(&self, rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<i128> for RangeTo<i128>

Source§

fn rand(&self, rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<i128> for RangeToInclusive<i128>

Source§

fn rand(&self, rng: &mut Xorshift) -> i128

Source§

impl RandomSpec<isize> for isize

Source§

fn rand(&self, _rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<isize> for Range<isize>

Source§

fn rand(&self, rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<isize> for RangeFrom<isize>

Source§

fn rand(&self, rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<isize> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<isize> for RangeInclusive<isize>

Source§

fn rand(&self, rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<isize> for RangeTo<isize>

Source§

fn rand(&self, rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<isize> for RangeToInclusive<isize>

Source§

fn rand(&self, rng: &mut Xorshift) -> isize

Source§

impl RandomSpec<u8> for u8

Source§

fn rand(&self, _rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u8> for Range<u8>

Source§

fn rand(&self, rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u8> for RangeFrom<u8>

Source§

fn rand(&self, rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u8> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u8> for RangeInclusive<u8>

Source§

fn rand(&self, rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u8> for RangeTo<u8>

Source§

fn rand(&self, rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u8> for RangeToInclusive<u8>

Source§

fn rand(&self, rng: &mut Xorshift) -> u8

Source§

impl RandomSpec<u16> for u16

Source§

fn rand(&self, _rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u16> for Range<u16>

Source§

fn rand(&self, rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u16> for RangeFrom<u16>

Source§

fn rand(&self, rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u16> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u16> for RangeInclusive<u16>

Source§

fn rand(&self, rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u16> for RangeTo<u16>

Source§

fn rand(&self, rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u16> for RangeToInclusive<u16>

Source§

fn rand(&self, rng: &mut Xorshift) -> u16

Source§

impl RandomSpec<u32> for u32

Source§

fn rand(&self, _rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u32> for Range<u32>

Source§

fn rand(&self, rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u32> for RangeFrom<u32>

Source§

fn rand(&self, rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u32> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u32> for RangeInclusive<u32>

Source§

fn rand(&self, rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u32> for RangeTo<u32>

Source§

fn rand(&self, rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u32> for RangeToInclusive<u32>

Source§

fn rand(&self, rng: &mut Xorshift) -> u32

Source§

impl RandomSpec<u64> for u64

Source§

fn rand(&self, _rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u64> for Range<u64>

Source§

fn rand(&self, rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u64> for RangeFrom<u64>

Source§

fn rand(&self, rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u64> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u64> for RangeInclusive<u64>

Source§

fn rand(&self, rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u64> for RangeTo<u64>

Source§

fn rand(&self, rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u64> for RangeToInclusive<u64>

Source§

fn rand(&self, rng: &mut Xorshift) -> u64

Source§

impl RandomSpec<u128> for u128

Source§

fn rand(&self, _rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<u128> for Range<u128>

Source§

fn rand(&self, rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<u128> for RangeFrom<u128>

Source§

fn rand(&self, rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<u128> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<u128> for RangeInclusive<u128>

Source§

fn rand(&self, rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<u128> for RangeTo<u128>

Source§

fn rand(&self, rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<u128> for RangeToInclusive<u128>

Source§

fn rand(&self, rng: &mut Xorshift) -> u128

Source§

impl RandomSpec<()> for ()

Source§

fn rand(&self, _rng: &mut Xorshift)

Source§

impl RandomSpec<usize> for usize

Source§

fn rand(&self, _rng: &mut Xorshift) -> usize

Source§

impl RandomSpec<usize> for Range<usize>

Source§

fn rand(&self, rng: &mut Xorshift) -> usize

Source§

impl RandomSpec<usize> for RangeFrom<usize>

Source§

fn rand(&self, rng: &mut Xorshift) -> usize

Source§

impl RandomSpec<usize> for RangeFull

Source§

fn rand(&self, rng: &mut Xorshift) -> usize

Source§

impl RandomSpec<usize> for RangeInclusive<usize>

Source§

fn rand(&self, rng: &mut Xorshift) -> usize

Source§

impl RandomSpec<usize> for RangeTo<usize>

Source§

fn rand(&self, rng: &mut Xorshift) -> usize

Source§

impl RandomSpec<usize> for RangeToInclusive<usize>

Source§

fn rand(&self, rng: &mut Xorshift) -> usize

Source§

impl<A, B, C, D, E, F, G, H, I, J, RA, RB, RC, RD, RE, RF, RG, RH, RI, RJ> RandomSpec<(A, B, C, D, E, F, G, H, I, J)> for (RA, RB, RC, RD, RE, RF, RG, RH, RI, RJ)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>, RE: RandomSpec<E>, RF: RandomSpec<F>, RG: RandomSpec<G>, RH: RandomSpec<H>, RI: RandomSpec<I>, RJ: RandomSpec<J>,

Source§

impl<A, B, C, D, E, F, G, H, I, RA, RB, RC, RD, RE, RF, RG, RH, RI> RandomSpec<(A, B, C, D, E, F, G, H, I)> for (RA, RB, RC, RD, RE, RF, RG, RH, RI)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>, RE: RandomSpec<E>, RF: RandomSpec<F>, RG: RandomSpec<G>, RH: RandomSpec<H>, RI: RandomSpec<I>,

Source§

impl<A, B, C, D, E, F, G, H, RA, RB, RC, RD, RE, RF, RG, RH> RandomSpec<(A, B, C, D, E, F, G, H)> for (RA, RB, RC, RD, RE, RF, RG, RH)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>, RE: RandomSpec<E>, RF: RandomSpec<F>, RG: RandomSpec<G>, RH: RandomSpec<H>,

Source§

impl<A, B, C, D, E, F, G, RA, RB, RC, RD, RE, RF, RG> RandomSpec<(A, B, C, D, E, F, G)> for (RA, RB, RC, RD, RE, RF, RG)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>, RE: RandomSpec<E>, RF: RandomSpec<F>, RG: RandomSpec<G>,

Source§

impl<A, B, C, D, E, F, RA, RB, RC, RD, RE, RF> RandomSpec<(A, B, C, D, E, F)> for (RA, RB, RC, RD, RE, RF)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>, RE: RandomSpec<E>, RF: RandomSpec<F>,

Source§

fn rand(&self, rng: &mut Xorshift) -> (A, B, C, D, E, F)

Source§

impl<A, B, C, D, E, RA, RB, RC, RD, RE> RandomSpec<(A, B, C, D, E)> for (RA, RB, RC, RD, RE)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>, RE: RandomSpec<E>,

Source§

fn rand(&self, rng: &mut Xorshift) -> (A, B, C, D, E)

Source§

impl<A, B, C, D, RA, RB, RC, RD> RandomSpec<(A, B, C, D)> for (RA, RB, RC, RD)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>, RD: RandomSpec<D>,

Source§

fn rand(&self, rng: &mut Xorshift) -> (A, B, C, D)

Source§

impl<A, B, C, RA, RB, RC> RandomSpec<(A, B, C)> for (RA, RB, RC)
where RA: RandomSpec<A>, RB: RandomSpec<B>, RC: RandomSpec<C>,

Source§

fn rand(&self, rng: &mut Xorshift) -> (A, B, C)

Source§

impl<A, B, RA, RB> RandomSpec<(A, B)> for (RA, RB)
where RA: RandomSpec<A>, RB: RandomSpec<B>,

Source§

fn rand(&self, rng: &mut Xorshift) -> (A, B)

Source§

impl<A, RA> RandomSpec<(A,)> for (RA,)
where RA: RandomSpec<A>,

Source§

fn rand(&self, rng: &mut Xorshift) -> (A,)

Source§

impl<T, R> RandomSpec<T> for &R
where R: RandomSpec<T>,

Source§

fn rand(&self, rng: &mut Xorshift) -> T

Source§

impl<T, R> RandomSpec<T> for &mut R
where R: RandomSpec<T>,

Source§

fn rand(&self, rng: &mut Xorshift) -> T

Implementors§