use rand::Rng; use std::cmp::Ordering; use std::io; fn main() { println!("Guess the number!"); let secret_number = rand::rng().random_range(1..=100); loop { match input_guess().cmp(&secret_number) { Ordering::Less => println!("Too small!"), Ordering::Greater => println!("Too big!"), Ordering::Equal => { println!("😻 You win!"); break; } } } } fn input_guess() -> u32 { println!("Please input your guess"); let mut guess = String::new(); io::stdin() .read_line(&mut guess) .expect("failed to read line"); // let guess: u32 = guess.trim().parse().expect("Please type a number!"); let guess: u32 = match guess.trim().parse() { Ok(num) => num, Err(_) => input_guess(), }; return guess; }