UniformUsize

Struct UniformUsize 

Source
pub struct UniformUsize { /* private fields */ }
Available on 32-bit or 64-bit only.
Expand description

The back-end implementing UniformSampler for usize.

§Implementation notes

Sampling a usize value is usually used in relation to the length of an array or other memory structure, thus it is reasonable to assume that the vast majority of use-cases will have a maximum size under u32::MAX. In part to optimise for this use-case, but mostly to ensure that results are portable across 32-bit and 64-bit architectures (as far as is possible), this implementation will use 32-bit sampling when possible.

Trait Implementations§

Source§

impl Clone for UniformUsize

Source§

fn clone(&self) -> UniformUsize

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
Source§

impl Debug for UniformUsize

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for UniformUsize

Source§

fn eq(&self, other: &UniformUsize) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl UniformSampler for UniformUsize

Source§

type X = usize

The type sampled by this implementation.
Source§

fn new<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Construct self, with inclusive lower bound and exclusive upper bound [low, high). Read more
Source§

fn new_inclusive<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Construct self, with inclusive bounds [low, high]. Read more
Source§

fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> usize

Sample a value.
Source§

fn sample_single<R: Rng + ?Sized, B1, B2>( low_b: B1, high_b: B2, rng: &mut R, ) -> Result<Self::X, Error>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Sample a single value uniformly from a range with inclusive lower bound and exclusive upper bound [low, high). Read more
Source§

fn sample_single_inclusive<R: Rng + ?Sized, B1, B2>( low_b: B1, high_b: B2, rng: &mut R, ) -> Result<Self::X, Error>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Sample a single value uniformly from a range with inclusive lower bound and inclusive upper bound [low, high]. Read more
Source§

impl Copy for UniformUsize

Source§

impl Eq for UniformUsize

Source§

impl StructuralPartialEq for UniformUsize

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 32 bytes