/ src / main.rs
main.rs
 1  mod deck; // Declare the `deck` module (located at src/deck.rs)
 2  mod enums;
 3  use rand::seq::SliceRandom;
 4  use rand::thread_rng;
 5  
 6  use crate::deck::Card;
 7  use crate::enums::{cards::CardValue, suits::Suit};
 8  
 9  fn main() {
10      let ace_of_spades = Card { value: CardValue::Ace, suit: Suit::Spades };
11      let ace_of_hearts = Card { value: CardValue::Ace, suit: Suit::Hearts };
12      let king_of_spades = Card { value: CardValue::King, suit: Suit::Spades };
13  
14      assert!(ace_of_spades > ace_of_hearts);  // Same value, higher suit
15      assert!(ace_of_spades > king_of_spades); // Higher value
16      assert!(ace_of_hearts == ace_of_hearts); // Same card
17      let mut deck = crate::deck::Deck::new();
18      println!("Generated deck with {} cards", deck.cards.len());
19  
20      let mut rng = thread_rng();
21      deck.cards.shuffle(&mut rng);
22      // Print first 5 cards
23      for card in deck.cards.iter() {
24          println!("{}", card);
25      }
26  
27      println!("{}",deck.cards.len());
28      let c = deck.take_top().unwrap();
29      println!("{}",deck.cards.len());
30      println!("{}", c)
31      
32  }