How to Write Idiomatic Rust Code

Write idiomatic Rust by using enums, match expressions, and iterators to ensure safety and clarity.

Write idiomatic Rust by leveraging the type system for safety, using match for exhaustive pattern matching, and preferring iterators over manual loops.

enum Message {
    Quit,
    Move { x: i32, y: i32 },
    Write(String),
    ChangeColor(i32, i32, i32),
}

impl Message {
    fn call(&self) {
        match self {
            Message::Quit => println!("Quitting"),
            Message::Move { x, y } => println!("Moving to ({}, {})", x, y),
            Message::Write(text) => println!("Text message: {}", text),
            Message::ChangeColor(r, g, b) => println!("Color: ({}, {}, {})", r, g, b),
        }
    }
}

fn main() {
    let m = Message::Write(String::from("hello"));
    m.call();
}