diff --git a/flake.nix b/flake.nix index 9ef24ba..23cfa71 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,7 @@ clippy rust-analyzer lldb + rust-rover (vscode-with-extensions.override { vscode = vscodium; vscodeExtensions = with vscode-extensions; [ diff --git a/guessing_game/Cargo.lock b/guessing_game/Cargo.lock index ed2f348..07d4b5e 100644 --- a/guessing_game/Cargo.lock +++ b/guessing_game/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + [[package]] name = "cfg-if" version = "1.0.0" @@ -10,12 +16,13 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", "libc", + "r-efi", "wasi", ] @@ -60,21 +67,27 @@ dependencies = [ ] [[package]] -name = "rand" -version = "0.8.5" +name = "r-efi" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "libc", "rand_chacha", "rand_core", + "zerocopy", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -82,9 +95,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom", ] @@ -108,9 +121,21 @@ checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] [[package]] name = "zerocopy" diff --git a/guessing_game/src/main.rs b/guessing_game/src/main.rs index 4dcb3cf..0739289 100644 --- a/guessing_game/src/main.rs +++ b/guessing_game/src/main.rs @@ -1,8 +1,14 @@ +use rand::Rng; +use std::cmp::Ordering; use std::io; fn main() { println!("Guess the number!"); + // I remember looking this up. Will find the undeprecated calls later. + let secret_number = rand::thread_rng().gen_range(1..=100); + println!("The secret number is: {}", secret_number); + println!("Please input your guess: "); // ::new() is an associated type. Function is implemented on this type @@ -16,5 +22,18 @@ fn main() { .read_line(&mut guess) .expect("Failed to read line!"); // Use this if truly want to error out. Use pattern matching otherwise + // Inner programming me screaming rn. This actually isn't all that + // bad tho. What's wrong with reusing variable names? + // Rust calls it shadowing. + let guess: u32 = guess.trim().parse().expect("Please type a number!"); + println!("You guessed: {}", guess); + + match guess.cmp(&secret_number) { + // pogger matching + Ordering::Less => println!("Too Small!"), + // -1 => println!("Too Small!"), // Not doable + Ordering::Greater => println!("Too big!"), + Ordering::Equal => println!("You win!"), + } }