Struct rdeck::SliceDeck

source ·
pub struct SliceDeck<'a, R: Rng, T> { /* private fields */ }
Expand description

a Deck that randomly draws elements from a slice.

note that this works by randomly picking an index of the slice, so it is possible to draw two card with equal value if (and only if) the slice contains two elements of equal value.

Trait Implementations§

source§

impl<'a, R: Rng, T> Deck for SliceDeck<'a, R, T>

§

type Card = &'a T

source§

fn left(&self) -> usize

number of remaining cards in the deck.
source§

fn draw(&mut self) -> &'a T

draw a random card from the deck. Read more
source§

fn refill(&mut self)

add all previously drawn cards back into the deck.
source§

fn try_draw(&mut self) -> Option<Self::Card>

draw a random card from the deck, returning None if the deck is empty.

Auto Trait Implementations§

§

impl<'a, R, T> RefUnwindSafe for SliceDeck<'a, R, T>

§

impl<'a, R, T> Send for SliceDeck<'a, R, T>
where R: Send, T: Sync,

§

impl<'a, R, T> Sync for SliceDeck<'a, R, T>
where R: Sync, T: Sync,

§

impl<'a, R, T> Unpin for SliceDeck<'a, R, T>
where R: Unpin,

§

impl<'a, R, T> UnwindSafe for SliceDeck<'a, R, T>

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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.