pub struct Rng(/* private fields */);
Expand description
A random number generator.
Implementations§
Source§impl Rng
impl Rng
Sourcepub fn with_seed(seed: u64) -> Self
pub fn with_seed(seed: u64) -> Self
Creates a new random number generator with the initial seed.
Sourcepub fn alphabetic(&self) -> char
pub fn alphabetic(&self) -> char
Generates a random char
in ranges a-z and A-Z.
Sourcepub fn alphanumeric(&self) -> char
pub fn alphanumeric(&self) -> char
Generates a random char
in ranges a-z, A-Z and 0-9.
Sourcepub fn digit(&self, base: u32) -> char
pub fn digit(&self, base: u32) -> char
Generates a random digit in the given base
.
Digits are represented by char
s in ranges 0-9 and a-z.
Panics if the base is zero or greater than 36.
Sourcepub fn i8(&self, range: impl RangeBounds<i8>) -> i8
pub fn i8(&self, range: impl RangeBounds<i8>) -> i8
Generates a random i8
in the given range.
Panics if the range is empty.
Sourcepub fn i16(&self, range: impl RangeBounds<i16>) -> i16
pub fn i16(&self, range: impl RangeBounds<i16>) -> i16
Generates a random i16
in the given range.
Panics if the range is empty.
Sourcepub fn i32(&self, range: impl RangeBounds<i32>) -> i32
pub fn i32(&self, range: impl RangeBounds<i32>) -> i32
Generates a random i32
in the given range.
Panics if the range is empty.
Sourcepub fn i64(&self, range: impl RangeBounds<i64>) -> i64
pub fn i64(&self, range: impl RangeBounds<i64>) -> i64
Generates a random i64
in the given range.
Panics if the range is empty.
Sourcepub fn i128(&self, range: impl RangeBounds<i128>) -> i128
pub fn i128(&self, range: impl RangeBounds<i128>) -> i128
Generates a random i128
in the given range.
Panics if the range is empty.
Sourcepub fn isize(&self, range: impl RangeBounds<isize>) -> isize
pub fn isize(&self, range: impl RangeBounds<isize>) -> isize
Generates a random isize
in the given range.
Panics if the range is empty.
Sourcepub fn u8(&self, range: impl RangeBounds<u8>) -> u8
pub fn u8(&self, range: impl RangeBounds<u8>) -> u8
Generates a random u8
in the given range.
Panics if the range is empty.
Sourcepub fn u16(&self, range: impl RangeBounds<u16>) -> u16
pub fn u16(&self, range: impl RangeBounds<u16>) -> u16
Generates a random u16
in the given range.
Panics if the range is empty.
Sourcepub fn u32(&self, range: impl RangeBounds<u32>) -> u32
pub fn u32(&self, range: impl RangeBounds<u32>) -> u32
Generates a random u32
in the given range.
Panics if the range is empty.
Sourcepub fn u64(&self, range: impl RangeBounds<u64>) -> u64
pub fn u64(&self, range: impl RangeBounds<u64>) -> u64
Generates a random u64
in the given range.
Panics if the range is empty.
Sourcepub fn u128(&self, range: impl RangeBounds<u128>) -> u128
pub fn u128(&self, range: impl RangeBounds<u128>) -> u128
Generates a random u128
in the given range.
Panics if the range is empty.
Sourcepub fn usize(&self, range: impl RangeBounds<usize>) -> usize
pub fn usize(&self, range: impl RangeBounds<usize>) -> usize
Generates a random usize
in the given range.
Panics if the range is empty.
Trait Implementations§
Source§impl Clone for Rng
impl Clone for Rng
Source§fn clone(&self) -> Rng
fn clone(&self) -> Rng
Clones the generator by deterministically deriving a new generator based on the initial seed.
§Example
// Seed two generators equally, and clone both of them.
let base1 = fastrand::Rng::new();
base1.seed(0x4d595df4d0f33173);
base1.bool(); // Use the generator once.
let base2 = fastrand::Rng::new();
base2.seed(0x4d595df4d0f33173);
base2.bool(); // Use the generator once.
let rng1 = base1.clone();
let rng2 = base2.clone();
assert_eq!(rng1.u64(..), rng2.u64(..), "the cloned generators are identical");
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl !Freeze for Rng
impl !RefUnwindSafe for Rng
impl Send for Rng
impl !Sync for Rng
impl Unpin for Rng
impl UnwindSafe for Rng
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)