sandwich/src/eval.rs

22 lines
652 B
Rust

pub fn do_math(arguments: String, operator: char) -> u32 {
let split_args = arguments.split("-").collect::<Vec<&str>>();
let num1: u32 = match split_args[0].parse() {
Ok(num) => num,
Err(_e) => panic!("ArgumentError: Not a number: {}", split_args[0]),
};
let num2: u32 = match split_args[1].parse() {
Ok(num) => num,
Err(_e) => panic!("ArgumentError: Not a number: {}", split_args[1]),
};
match operator {
'+' => num1 + num2,
'-' => num1 - num2,
'*' => num1 * num2,
'/' => num1 / num2,
_ => panic!("SyntaxError: Unknown operator {}", operator),
}
}