Rewrite Rhai function dispatching

This commit is contained in:
torkleyy
2017-12-20 12:16:14 +01:00
parent ecf143b649
commit f09545921f
11 changed files with 610 additions and 1351 deletions

View File

@@ -1,7 +1,9 @@
extern crate rhai;
use rhai::{Engine, FnRegister};
use rhai::{Any, Engine, RegisterFn};
fn add(x: i64, y: i64) -> i64 {
println!("Adding: {}", x + y);
x + y
}
@@ -9,8 +11,17 @@ fn main() {
let mut engine = Engine::new();
engine.register_fn("add", add);
engine
.call_fn_raw(
"add".to_owned(),
vec![
&mut (Box::new(3i64) as Box<Any>),
&mut (Box::new(5i64) as Box<Any>),
],
)
.expect("FAIL");
if let Ok(result) = engine.eval::<i64>("add(40, 2)") {
println!("Answer: {}", result); // prints 42
}
//if let Ok(result) = engine.eval::<i64>("add(40, 2)") {
// println!("Answer: {}", result); // prints 42
//}
}