Function expr_solver::resolve
source · pub fn resolve(input_string: String) -> Result<f64, String>
Expand description
Takes mathematical expression as string, resolves it.
§Arguments
- input_string
§Returns
Result<f_64, String>
§Examples
use expr_solver::resolve;
// simple binary expression.
assert_eq!(resolve("2+2".to_string()), Ok(4.0));
// follows precendence, 2 + (2 * 2) and NOT (2 + 2) * 2
assert_eq!(resolve("2+2*2".to_string()), Ok(6.0));
// unary expression.
assert_eq!(resolve("-2".to_string()), Ok(-2.0));
// even chain them. -(-2)
assert_eq!(resolve("--2".to_string()), Ok(2.0));
// binary and unary in one expression.
assert_eq!(resolve("2+-2".to_string()), Ok(0.0));
// gives syntax error.
assert!(matches!(resolve("2)2".to_string()), Err(String)));