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)));