diff --git a/Cargo.lock b/Cargo.lock index e13750b..8b3d77d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -150,6 +150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", + "clap_derive", ] [[package]] @@ -164,6 +165,18 @@ dependencies = [ "strsim", ] +[[package]] +name = "clap_derive" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "clap_lex" version = "0.7.4" @@ -211,13 +224,20 @@ version = "0.1.0" dependencies = [ "anyhow", "clap", - "rand", + "petname", + "rand 0.9.0-beta.1", "serde", "serde_json", "sha256", "tokio", ] +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + [[package]] name = "errno" version = "0.3.10" @@ -238,6 +258,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + [[package]] name = "getrandom" version = "0.3.0-rc.0" @@ -259,6 +290,12 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hex" version = "0.4.3" @@ -271,6 +308,15 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.14" @@ -379,6 +425,20 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "petname" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cd31dcfdbbd7431a807ef4df6edd6473228e94d5c805e8cf671227a21bad068" +dependencies = [ + "anyhow", + "clap", + "itertools", + "proc-macro2", + "quote", + "rand 0.8.5", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -412,17 +472,38 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.9.0-beta.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8478de76992f2825a1052cc2ae9d1401cdb62687761d4100ddd69a73dc3dc48" dependencies = [ - "rand_chacha", - "rand_core", + "rand_chacha 0.9.0-beta.1", + "rand_core 0.9.0-beta.1", "zerocopy 0.8.14", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + [[package]] name = "rand_chacha" version = "0.9.0-beta.1" @@ -430,7 +511,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f16da77124f4ee9fabd55ce6540866e9101431863b4876de58b68797f331adf2" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.0-beta.1", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", ] [[package]] @@ -439,7 +529,7 @@ version = "0.9.0-beta.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98fa0b8309344136abe6244130311e76997e546f76fae8054422a7539b43df7" dependencies = [ - "getrandom", + "getrandom 0.3.0-rc.0", "zerocopy 0.8.14", ] diff --git a/Cargo.toml b/Cargo.toml index 17e066d..b1a9c23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,3 +11,4 @@ anyhow = "1.0.95" serde_json = "1.0.135" serde = { version = "1.0.217", features = ["derive"] } sha256 = "1.5.0" +petname = "2.0.2" diff --git a/src/lobby.rs b/src/lobby.rs index 8b5c283..8af57e4 100644 --- a/src/lobby.rs +++ b/src/lobby.rs @@ -1,8 +1,10 @@ use crate::{deck::Deck, player::Player}; +use petname::Generator; pub struct Lobby { - players: Vec, - deck: Deck, + pub id: String, + pub players: Vec, + pub deck: Deck, } impl Lobby { @@ -10,7 +12,10 @@ impl Lobby { let players: Vec = Vec::new(); let deck = Deck::new().shuffle(); + let petname = petname::Petnames::default().generate_one(2, "-").expect("no words provided"); + Lobby { + id: petname, players, deck, }