This library provides ways to evaluate mathematical expressions at runtime.

Feature switches

Example 1

```rust use evaluatorrs::eval; use evaluatorrs::formulas::ParserError;

fn evaluate() -> Result<(), ParserError> { let expression = "1 + 2"; let result = eval(expression)?; debugasserteq!(result, 3.0); Ok(()) } ```

Example 2

```rust use evaluatorrs::formulas::{Evaluate, RootFormula}; use evaluatorrs::functionstores::EmptyFunctionStore; use evaluatorrs::variablestores::{HashMapVariableStore, SetVariable};

fn example() -> Result<(), ParserError> { let formula = RootFormula::parse("a + b", &EmptyFunctionStore)?; let mut variablestore = HashMapVariableStore::new(); variablestore.set("a", RootFormula::parse("1", &EmptyFunctionStore)?); variablestore.set("b", RootFormula::parse("10", &EmptyFunctionStore)?); let evaluated = formula.eval(&variablestore); assert!(evaluated.isok()); let evaluated = evaluated?; asserteq!(evaluated, 11.0); } ```