durak/src/lobby.rs
2025-01-12 23:23:34 +01:00

40 lines
822 B
Rust

use crate::{deck::Deck, player::Player};
use petname::Generator;
#[derive(Eq, PartialEq, Hash, Clone)]
pub struct Lobby {
pub id: String,
pub players: Vec<Player>,
pub deck: Deck,
}
impl Lobby {
pub fn new() -> Lobby {
let players: Vec<Player> = Vec::new();
let deck = Deck::new().shuffle();
let petname = petname::Petnames::default().generate_one(2, "-").expect("no words provided");
Lobby {
id: petname,
players,
deck,
}
}
pub fn join_lobby(mut self, player: Player) {
self.players.push(player);
}
pub fn get_players(self) -> Vec<Player> {
self.players
}
pub fn get_deck(self) -> Deck {
self.deck
}
pub fn get_id(&self) -> String {
self.id.clone()
}
}