diff --git a/src/rpn.rs b/src/rpn.rs index c7a261d..16ba94f 100644 --- a/src/rpn.rs +++ b/src/rpn.rs @@ -94,9 +94,9 @@ fn str_to_calc_type(string: &str) -> Option { match string { "+" => Some(Add), - "-" => Some(Subtract), - "*" => Some(Multiply), - "/" => Some(Divide), + "-" | "−" => Some(Subtract), + "*" | "×" => Some(Multiply), + "/" | "÷" => Some(Divide), "^" => Some(Power), "//" => Some(Floor), "%" => Some(Modulo), @@ -145,19 +145,19 @@ fn eval( }, _ => { let (x, y) = ( - &stack.pop_back().unwrap(), - &stack.pop_back().unwrap(), + stack.pop_back().unwrap(), + stack.pop_back().unwrap(), ); match op { - Add => &stack.push_back(y + x), - Subtract => &stack.push_back(y - x), - Multiply => &stack.push_back(y * x), - Divide => &stack.push_back(y / x), - Power => &stack.push_back(x.powf(*y)), - Floor => &stack.push_back((y / x).floor()), - Modulo => &stack.push_back(y % x), - _ => &{}, + Add => stack.push_back(y + x), + Subtract => stack.push_back(y - x), + Multiply => stack.push_back(y * x), + Divide => stack.push_back(y / x), + Power => stack.push_back(x.powf(y)), + Floor => stack.push_back((y / x).floor()), + Modulo => stack.push_back(y % x), + _ => {}, }; }, };