A library for evaluating strings as expressions.
```rust // construct a new shroom instance let shrm = Shroom::new();
// eval
returns a Result
containing a shroom primitive value on success
// or an error message on fail.
// A shroom primitive value can be an integer, a floating point number, a boolean value or a string.
// Calling unwrap_int
on a primitive value returns the value as i64 or panics if it is not an integer.
let result = shrm.eval("2 + 3 * 4").unwrap().unwrap_int();
println!("2 + 3 * 4 = {}", result);
Output:
text
2 + 3 * 4 = 14
``
A shroom expression can contain decimal, hexadecimal (with prefix
0x), octal (
0o) and binary (0b) integers, floating point numbers (basic decimal and scientific notation), boolean values (
trueor
false), strings (enclosed in
") and the following binary operators:
-
+-
/
*
%
: basic arithmetic operations, exponentiation and remainder
-
&|
^
<<
>>
: bitwise operations
-
><
>=
<=
!=
==
: comparisons
-
&&||
: logical operations
+` can be used for string concatenation