rust-tuto/src/main.rs

37 lines
669 B
Rust
Raw Permalink Normal View History

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