use std::io::{self, BufRead, Write}; fn main() { // 1. Basic function with a typed return value let squares = square_sums(3, 4); println!("3² + 4² = {squares}"); // 2. match with pattern binding let status = get_status(); match status { 200 => println!("Status: OK"), 404 => println!("Status: Not Found"), code => println!("Status: unknown code {code}"), } // 3. Read a name from stdin and greet it. // Flush stdout after printing the prompt, otherwise the "Enter your // name:" text is buffered and only appears AFTER the user hits Enter. let stdout = io::stdout(); let mut handle = stdout.lock(); handle.write_all(b"Enter your name: ").unwrap(); handle.flush().unwrap(); let mut name = String::new(); io::stdin().lock().read_line(&mut name).unwrap(); let name = name.trim(); println!("Hello, {name}!"); } /// Sum of squares of two numbers. fn square_sums(a: i32, b: i32) -> i32 { a * a + b * b } /// A little pretend "status code" lookup. fn get_status() -> i32 { 200 }