Struct RandomNumberGenerator

Source
pub struct RandomNumberGenerator { /* private fields */ }

Implementations§

Source§

impl RandomNumberGenerator

Source

pub fn new() -> RandomNumberGenerator

Creates a new RNG from a randomly generated seed

Source

pub fn seeded(seed: u64) -> RandomNumberGenerator

Creates a new RNG from a specific seed

Source

pub fn rand<T>(&mut self) -> T

Returns a random value of whatever type you specify

Source

pub fn range<T>(&mut self, min: T, max: T) -> T

Returns a random value in the specified range, of type specified at the call site. This is INCLUSIVE of the first parameter, and EXCLUSIVE of the second. So range(1,6) will give you numbers from 1 to 5.

Source

pub fn roll_dice(&mut self, n: i32, die_type: i32) -> i32

Rolls dice, using the classic 3d6 type of format: n is the number of dice, die_type is the size of the dice.

Source

pub fn next_u64(&mut self) -> u64

Returns the RNG’s next unsigned-64 type

Source

pub fn roll(&mut self, dice: DiceType) -> i32

Rolls dice based on a DiceType struct, including application of the bonus

Source

pub fn roll_str<S>(&mut self, dice: S) -> Result<i32, DiceParseError>
where S: ToString,

Rolls dice based on passing in a string, such as roll_str(“1d12”)

Source

pub fn random_slice_index<T>(&mut self, slice: &[T]) -> Option<usize>

Returns a random index into a slice

Source

pub fn random_slice_entry<'a, T>(&mut self, slice: &'a [T]) -> Option<&'a T>

Returns a random entry in a slice (or none if empty)

Source

pub fn get_rng(&mut self) -> &mut XorShiftRng

Get underlying RNG implementation for use in traits / algorithms exposed by other crates (eg. rand itself)

Trait Implementations§

Source§

impl Clone for RandomNumberGenerator

Source§

fn clone(&self) -> RandomNumberGenerator

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.