pub trait Deck {
type Card;
// Required methods
fn left(&self) -> usize;
fn draw(&mut self) -> Self::Card;
fn refill(&mut self);
// Provided method
fn try_draw(&mut self) -> Option<Self::Card> { ... }
}Expand description
a Deck abstractly represents a source of distinct random elements.