rust_programming_book 0.1.1

Programming works from THE RUST PROGRAMMING LANGUAGE
Documentation
#[derive(Debug)]
pub enum IpAddress<'a> {
    V4(u8, u8, u8, u8),
    V6(&'a str),
}

#[allow(dead_code)]
impl<'a> IpAddress<'a> {
    pub fn check_version(ip_address: Self) {
        match ip_address {
            Self::V4(first, second, third, fourth) => {
                println!(
                    "Ip address is version 4: {}.{}.{}.{}",
                    first, second, third, fourth
                );
            }
            Self::V6(address_v6) => {
                println!("Ip address is version 6: {}", address_v6);
            }
        }
    }
}
#[allow(dead_code)]
pub fn enum_display() {
    let home_address = IpAddress::V4(100, 10, 10, 5);
    let loop_back = IpAddress::V6("::01");

    println!("home address: {:#?}", home_address);
    println!("loop_back, {:#?}", loop_back);
}

#[allow(dead_code)]
pub fn pattern_matching() {
    let home_address = IpAddress::V4(100, 10, 10, 5);
    let loop_back = IpAddress::V6("::01");

    IpAddress::check_version(home_address);
    IpAddress::check_version(loop_back);
}