# Rust Card Deck Library This Rust library provides types and functions for working with a standard deck of playing cards. It includes definitions for `Suit`, `Value`, `Card`, and `Deck` types, along with various methods for interacting with decks. ## Installation ```sh cargo add small-card-deck ``` ## Usage ```rust use small-card-deck::{Deck, Suit, Value}; fn main() { // Create a new deck let mut deck = Deck::new(); // Shuffle the deck deck.shuffle(); // Peek at the top card if let Some(top_card) = deck.peek() { println!("Top card: {}", top_card); } else { println!("The deck is empty!"); } } ``` Types Suit Represents the suit of a playing card. Variants: Hearts Diamonds Clubs Spades Value Represents the value of a playing card. Variants: Ace Two Three Four Five Six Seven Eight Nine Ten Jack Queen King Card Represents a single playing card, consisting of a suit and a value. Methods: new(suit: Suit, value: Value) -> Self: Creates a new Card instance. to_string() -> String: Converts the card to a string representation. Deck Represents a deck of playing cards. Methods: new() -> Self: Creates a new Deck instance with a standard 52-card deck. shuffle(): Shuffles the cards in the deck. peek() -> Option<&Card>: Returns a reference to the top card of the deck.