[−][src]Crate rhai
Rhai - embedded scripting for Rust
Rhai is a tiny, simple and very fast embedded scripting language for Rust
that gives you a safe and easy way to add scripting to your applications.
It provides a familiar syntax based on JS and Rust and a simple Rust interface.
Here is a quick example. First, the contents of my_script.rhai
:
fn factorial(x) { if x == 1 { return 1; } x * factorial(x - 1) } compute_something(factorial(10))
And the Rust part:
use rhai::{Engine, EvalAltResult, RegisterFn}; fn main() -> Result<(), EvalAltResult> { fn compute_something(x: i64) -> bool { (x % 40) == 0 } let mut engine = Engine::new(); engine.register_fn("compute_something", compute_something); assert_eq!(engine.eval_file::<bool>("my_script.rhai".into())?, true); Ok(()) }
Structs
AST | Compiled AST (abstract syntax tree) of a Rhai script. |
Engine | Rhai main scripting engine. |
ParseError | Error when parsing a script. |
Position | A location (line number + character position) in the input script. |
Scope | A type containing information about the current scope.
Useful for keeping state between |
Enums
EvalAltResult | Evaluation result. |
OptimizationLevel | Level of optimization performed. |
ParseErrorType | Type of error encountered when parsing a script. |
Traits
Any | A trait covering any type. |
AnyExt | An extension trait that allows down-casting a |
FuncArgs | Trait that represent arguments to a function call.
Any data type that can be converted into a |
RegisterDynamicFn | A trait to register custom functions that return |
RegisterFn | A trait to register custom functions with the |
RegisterResultFn | A trait to register fallible custom functions returning Result<_, EvalAltResult> with the |
Type Definitions
Array | An dynamic array of |
Dynamic | A boxed dynamic type containing any value. |
FLOAT | The system floating-point type. |
INT | The system integer type. |
Map | An dynamic hash map of |
Variant | An raw value of any type. |