So I decided that I would like to write some code in Rust on my own. However I got stuck at simple deal with multiple errors. The program does compile. But how do I get the result from get(), parse() functions and return error message from the function in case if something fails?
struct Size
{
width: u32,
height: u32
}
fn get_size(args: &Vec<String>) -> Result<Size, &'static str>
{
if args.len() > 1
{
let x = args.get(0).unwrap().parse().unwrap(); // May fail
let y = args.get(1).unwrap().parse().unwrap(); // May fail
Ok(Size{width: x, height: y})
}
else
{
Err("Invalid arguments")
}
}
fn main()
{
let args: Vec<String> = std::env::args().skip(1).collect();
let size = match get_size(&args)
{
Ok(sz) => sz,
Err(er) =>
{
writeln!(std::io::stderr(), "{}", er).unwrap();
std::process::exit(1);
}
};
let size = get_size(&args).unwrap();
println!("{} : {}", size.width, size.height);
}