PRNGenerator

Trait PRNGenerator 

Source
pub trait PRNGenerator:
    Sized
    + ReprC
    + Clone {
    // Required method
    unsafe fn fill_raw(&mut self, dst_ptr: *mut u8, dst_len: usize);

    // Provided methods
    fn fill(&mut self, dst: &mut [u8]) { ... }
    fn generate<T>(&mut self) -> T
       where T: PRNConcreteGenerator<Self> { ... }
    fn generate_in_range<T, TBounds: RangeBounds<T>>(
        &mut self,
        range: TBounds,
    ) -> T
       where T: PRNConcreteBoundedGenerator<Self> { ... }
}
Expand description

Generates pseudo random numbers.

Required Methods§

Source

unsafe fn fill_raw(&mut self, dst_ptr: *mut u8, dst_len: usize)

Fills the given raw buffer with randomness.

§Safety

This function assumes that both dst_ptr and dst_len correspond to valid chunk of memory. Otherwise the behaviour is undefined.

Provided Methods§

Source

fn fill(&mut self, dst: &mut [u8])

Fills the given buffer with randomness.

Source

fn generate<T>(&mut self) -> T
where T: PRNConcreteGenerator<Self>,

Generates pseudo random instance of given type if supported. This function should support at least i32, u32, i64 and u64 types.

Source

fn generate_in_range<T, TBounds: RangeBounds<T>>(&mut self, range: TBounds) -> T

Generates a pseudo random number in given range, if supported.

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.

Implementors§