rustfmt.
This commit is contained in:
@@ -1,36 +1,44 @@
|
||||
use rhai::{EvalAltResult, FLOAT, INT, Module, RegisterFn};
|
||||
use rhai::plugin::*;
|
||||
use rhai::module_resolvers::*;
|
||||
use rhai::plugin::*;
|
||||
use rhai::{EvalAltResult, Module, RegisterFn, FLOAT, INT};
|
||||
|
||||
pub mod raw_fn {
|
||||
use rhai::FLOAT;
|
||||
use rhai::export_fn;
|
||||
use rhai::FLOAT;
|
||||
|
||||
#[export_fn]
|
||||
pub fn distance_function(x1: FLOAT, y1: FLOAT, x2: FLOAT, y2: FLOAT) -> FLOAT {
|
||||
((y2 - y1).abs().powf(2.0) + (x2 -x1).abs().powf(2.0)).sqrt()
|
||||
((y2 - y1).abs().powf(2.0) + (x2 - x1).abs().powf(2.0)).sqrt()
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn raw_fn_test() -> Result<(), Box<EvalAltResult>> {
|
||||
let mut engine = Engine::new();
|
||||
engine.register_fn("get_mystic_number", || { 42 as FLOAT });
|
||||
engine.register_fn("get_mystic_number", || 42 as FLOAT);
|
||||
let mut m = Module::new();
|
||||
rhai::register_exported_fn!(m, "euclidean_distance".to_string(), raw_fn::distance_function);
|
||||
rhai::register_exported_fn!(
|
||||
m,
|
||||
"euclidean_distance".to_string(),
|
||||
raw_fn::distance_function
|
||||
);
|
||||
let mut r = StaticModuleResolver::new();
|
||||
r.insert("Math::Advanced".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
let x = math::euclidean_distance(0.0, 1.0, 0.0, get_mystic_number()); x"#)?, 41.0);
|
||||
assert_eq!(
|
||||
engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
let x = math::euclidean_distance(0.0, 1.0, 0.0, get_mystic_number()); x"#
|
||||
)?,
|
||||
41.0
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
mod raw_fn_mut {
|
||||
use rhai::FLOAT;
|
||||
use rhai::export_fn;
|
||||
use rhai::FLOAT;
|
||||
|
||||
#[export_fn]
|
||||
pub fn add_in_place(f1: &mut FLOAT, f2: FLOAT) {
|
||||
@@ -41,18 +49,22 @@ mod raw_fn_mut {
|
||||
#[test]
|
||||
fn raw_fn_mut_test() -> Result<(), Box<EvalAltResult>> {
|
||||
let mut engine = Engine::new();
|
||||
engine.register_fn("get_mystic_number", || { 42 as FLOAT });
|
||||
engine.register_fn("get_mystic_number", || 42 as FLOAT);
|
||||
let mut m = Module::new();
|
||||
rhai::register_exported_fn!(m, "add_in_place", raw_fn_mut::add_in_place);
|
||||
let mut r = StaticModuleResolver::new();
|
||||
r.insert("Math::Advanced".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
assert_eq!(
|
||||
engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
let x = get_mystic_number();
|
||||
math::add_in_place(x, 1.0);
|
||||
x"#)?, 43.0);
|
||||
x"#
|
||||
)?,
|
||||
43.0
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -69,29 +81,33 @@ mod raw_fn_str {
|
||||
#[test]
|
||||
fn raw_fn_str_test() -> Result<(), Box<EvalAltResult>> {
|
||||
let mut engine = Engine::new();
|
||||
engine.register_fn("get_mystic_number", || { 42 as FLOAT });
|
||||
engine.register_fn("get_mystic_number", || 42 as FLOAT);
|
||||
let mut m = Module::new();
|
||||
rhai::register_exported_fn!(m, "write_out_str", raw_fn_str::write_out_str);
|
||||
let mut r = StaticModuleResolver::new();
|
||||
r.insert("Host::IO".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<bool>(
|
||||
r#"import "Host::IO" as io;
|
||||
assert_eq!(
|
||||
engine.eval::<bool>(
|
||||
r#"import "Host::IO" as io;
|
||||
let x = io::write_out_str("hello world!");
|
||||
x"#)?, true);
|
||||
x"#
|
||||
)?,
|
||||
true
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
mod mut_opaque_ref {
|
||||
use rhai::INT;
|
||||
use rhai::export_fn;
|
||||
use rhai::INT;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct StatusMessage {
|
||||
os_code: Option<INT>,
|
||||
message: String,
|
||||
is_ok: bool
|
||||
is_ok: bool,
|
||||
}
|
||||
|
||||
#[export_fn]
|
||||
@@ -130,12 +146,16 @@ fn mut_opaque_ref_test() -> Result<(), Box<EvalAltResult>> {
|
||||
r.insert("Host::Msg".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<bool>(
|
||||
r#"import "Host::Msg" as msg;
|
||||
assert_eq!(
|
||||
engine.eval::<bool>(
|
||||
r#"import "Host::Msg" as msg;
|
||||
let message1 = msg::new_message(true, "it worked");
|
||||
let ok1 = msg::write_out_message(message1);
|
||||
let message2 = msg::new_os_message(true, 0);
|
||||
let ok2 = msg::write_out_message(message2);
|
||||
ok1 && ok2"#)?, true);
|
||||
ok1 && ok2"#
|
||||
)?,
|
||||
true
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
@@ -1,12 +1,12 @@
|
||||
use rhai::{EvalAltResult, FLOAT, INT, RegisterFn};
|
||||
use rhai::plugin::*;
|
||||
use rhai::module_resolvers::*;
|
||||
use rhai::plugin::*;
|
||||
use rhai::{EvalAltResult, RegisterFn, FLOAT, INT};
|
||||
|
||||
pub mod empty_module {
|
||||
use rhai::export_module;
|
||||
|
||||
#[export_module]
|
||||
pub mod EmptyModule { }
|
||||
pub mod EmptyModule {}
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -17,8 +17,10 @@ fn empty_module_test() -> Result<(), Box<EvalAltResult>> {
|
||||
r.insert("Module::Empty".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<INT>(
|
||||
r#"import "Module::Empty" as m; 42"#)?, 42);
|
||||
assert_eq!(
|
||||
engine.eval::<INT>(r#"import "Module::Empty" as m; 42"#)?,
|
||||
42
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -42,10 +44,14 @@ fn one_fn_module_test() -> Result<(), Box<EvalAltResult>> {
|
||||
r.insert("Math::Advanced".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
assert_eq!(
|
||||
engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
let m = math::get_mystic_number();
|
||||
m"#)?, 42.0);
|
||||
m"#
|
||||
)?,
|
||||
42.0
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -59,7 +65,7 @@ pub mod one_fn_and_const_module {
|
||||
pub const MYSTIC_NUMBER: FLOAT = 42.0 as FLOAT;
|
||||
|
||||
pub fn euclidean_distance(x1: FLOAT, y1: FLOAT, x2: FLOAT, y2: FLOAT) -> FLOAT {
|
||||
((y2 - y1).abs().powf(2.0) + (x2 -x1).abs().powf(2.0)).sqrt()
|
||||
((y2 - y1).abs().powf(2.0) + (x2 - x1).abs().powf(2.0)).sqrt()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,11 +78,15 @@ fn one_fn_and_const_module_test() -> Result<(), Box<EvalAltResult>> {
|
||||
r.insert("Math::Advanced".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
assert_eq!(
|
||||
engine.eval::<FLOAT>(
|
||||
r#"import "Math::Advanced" as math;
|
||||
let m = math::MYSTIC_NUMBER;
|
||||
let x = math::euclidean_distance(0.0, 1.0, 0.0, m);
|
||||
x"#)?, 41.0);
|
||||
x"#
|
||||
)?,
|
||||
41.0
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -100,27 +110,31 @@ fn raw_fn_str_module_test() -> Result<(), Box<EvalAltResult>> {
|
||||
r.insert("Host::IO".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<bool>(
|
||||
r#"import "Host::IO" as io;
|
||||
assert_eq!(
|
||||
engine.eval::<bool>(
|
||||
r#"import "Host::IO" as io;
|
||||
let x = io::write_out_str("hello world!");
|
||||
x"#)?, true);
|
||||
x"#
|
||||
)?,
|
||||
true
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub mod mut_opaque_ref_module {
|
||||
use rhai::INT;
|
||||
use rhai::export_module;
|
||||
use rhai::INT;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct StatusMessage {
|
||||
os_code: Option<INT>,
|
||||
message: String,
|
||||
is_ok: bool
|
||||
is_ok: bool,
|
||||
}
|
||||
|
||||
#[export_module]
|
||||
pub mod host_msg {
|
||||
use super::{INT, StatusMessage};
|
||||
use super::{StatusMessage, INT};
|
||||
|
||||
pub fn new_message(is_ok: bool, message: &str) -> StatusMessage {
|
||||
StatusMessage {
|
||||
@@ -153,13 +167,17 @@ fn mut_opaque_ref_test() -> Result<(), Box<EvalAltResult>> {
|
||||
r.insert("Host::Msg".to_string(), m);
|
||||
engine.set_module_resolver(Some(r));
|
||||
|
||||
assert_eq!(engine.eval::<bool>(
|
||||
r#"import "Host::Msg" as msg;
|
||||
assert_eq!(
|
||||
engine.eval::<bool>(
|
||||
r#"import "Host::Msg" as msg;
|
||||
let success = "it worked";
|
||||
let message1 = msg::new_message(true, success);
|
||||
let ok1 = msg::write_out_message(message1);
|
||||
let message2 = msg::new_os_message(true, 0);
|
||||
let ok2 = msg::write_out_message(message2);
|
||||
ok1 && ok2"#)?, true);
|
||||
ok1 && ok2"#
|
||||
)?,
|
||||
true
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user