Skip to main content

RandomSpec

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".

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<M> RandomSpec<MInt<M>> for RangeFull
where M: MIntBase, RangeTo<M::Inner>: RandomSpec<M::Inner>,

Source§

fn rand(&self, rng: &mut Xorshift) -> MInt<M>

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§