I am learning Rust and would like a review to make sure I am following best Rust practices before continuing. The user enters a number between 1 and 100 up to 6 times to guess the randomly-generated number the system knows.
use std::io;
use rand::Rng;
fn main() {
let num = get_num();
let mut guessed = false;
for _ in 0..6 {
let guess = get_guess();
match guess {
x if x < num => println!("Your number is too low"),
x if x > num => println!("Your number is too high"),
_ => {
println!("Correct!");
guessed = true;
break;
}
}
}
if !guessed {
println!("Ran out of guesses. The number was {}", num);
}
}
fn get_num() -> i32 {
let mut rng = rand::rng();
let num: i32 = rng.random_range(1..=100);
num
}
fn get_guess() -> i32 {
let stdin = io::stdin();
let mut guess = None;
println!("Guess a number between 1 and 100");
while let None = guess {
let mut buffer = String::new();
let _ = stdin.read_line(&mut buffer);
guess = match buffer.trim().parse::<i32>() {
Ok(value) => Some(value),
Err(_) => {
println!("Invalid guess; try again");
None
}
};
}
guess.expect("Can't be reached")
}