Crates.io | shroom |
lib.rs | shroom |
version | 0.0.1 |
source | src |
created_at | 2019-03-17 23:21:09.778587 |
updated_at | 2019-03-17 23:21:09.778587 |
description | A library for evaluating strings as expressions. This is an experimental version, the crate is unstable and most of the features are yet to be tested. |
homepage | |
repository | |
max_upload_size | |
id | 121695 |
size | 100,605 |
// 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:
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 (true
or 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