Skip to main content

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

Implementors§