use std::env; #[derive(Debug)] enum Maybe { Just(T), Nothing } fn main() { let arg = env::args().nth(1); println!("{:?}", Maybe::Just(42)); match arg { Some(result) => { let ip = ip_to_int(&result); println!("{:b}", ip); }, None => println!("need one arg") } } fn ip_to_int(ip_str: &str) -> u32 { let mut tbl : Vec<&str> = ip_str.split(".") .collect(); tbl.reverse(); let mut ip = 0_u32; for (idx, s) in tbl.iter().enumerate() { let nbr : u8 = s.parse() .expect("parse fail"); ip += (nbr as u32) << 8*idx; } ip }