How to Use Nested Pattern Matching in Rust

Use nested patterns in a match expression to destructure enum variants and access inner data directly.

Use nested patterns inside a match arm to destructure data within enum variants or tuples directly. This allows you to access inner fields without creating intermediate variables.

enum IpAddr {
    V4(u8, u8, u8, u8),
    V6(String),
}

fn route(ip: IpAddr) {
    match ip {
        IpAddr::V4(a, b, c, d) => println!("V4: {}.{}.{}.{}", a, b, c, d),
        IpAddr::V6(s) => println!("V6: {}", s),
    }
}