update
This commit is contained in:
parent
39f4aba804
commit
f93f2cf996
33
diff.patch
33
diff.patch
|
|
@ -1,8 +1,16 @@
|
|||
diff --git a/crates/ssd/src/generators/rhai.rs b/crates/ssd/src/generators/rhai.rs
|
||||
index d4ba8e3..764211d 100644
|
||||
index d4ba8e3..0353358 100644
|
||||
--- a/crates/ssd/src/generators/rhai.rs
|
||||
+++ b/crates/ssd/src/generators/rhai.rs
|
||||
@@ -281,27 +281,64 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
@@ -261,6 +261,7 @@ fn script_array_contains(arr: Array, v: &Dynamic) -> bool {
|
||||
#[allow(clippy::too_many_lines)]
|
||||
pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
let mut engine = Engine::new();
|
||||
+ engine.set_max_expr_depths(128, 64);
|
||||
// Register a token mapper function to allow module as identifier name
|
||||
#[allow(deprecated)]
|
||||
engine.on_parse_token(|token, _pos, _state| {
|
||||
@@ -281,27 +282,65 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
engine.register_global_module(package.as_shared_module());
|
||||
|
||||
engine.register_iterator::<Vec<serde_value::Value>>();
|
||||
|
|
@ -31,7 +39,8 @@ index d4ba8e3..764211d 100644
|
|||
+ .register_iterator::<Vec<$T>>()
|
||||
+ .register_iterator::<&Vec<&$T>>()
|
||||
+ .register_iterator::<Vec<$T>>()
|
||||
+ .register_iterator::<&Vec<&$T>>();
|
||||
+ .register_iterator::<&Vec<&$T>>()
|
||||
+ .register_indexer_get(|v: &mut Vec<$T>, i: i64| v[i as usize].clone());
|
||||
+ };
|
||||
+ }
|
||||
+
|
||||
|
|
@ -83,7 +92,7 @@ index d4ba8e3..764211d 100644
|
|||
|
||||
#[allow(clippy::items_after_statements)]
|
||||
fn script_first<A: Clone, B>(tuple: &mut (A, B)) -> A {
|
||||
@@ -336,6 +373,7 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
@@ -336,6 +375,7 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
Enum,
|
||||
DataType,
|
||||
Service,
|
||||
|
|
@ -91,7 +100,15 @@ index d4ba8e3..764211d 100644
|
|||
Function,
|
||||
TypeName,
|
||||
EnumValue,
|
||||
@@ -398,7 +436,7 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
@@ -354,6 +394,7 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
.register_get("name", SsdModule::namespace)
|
||||
.register_get("imports", SsdModule::imports)
|
||||
.register_get("data_types", SsdModule::data_types)
|
||||
+ .register_get("types", SsdModule::data_types)
|
||||
.register_get("enums", SsdModule::enums)
|
||||
.register_get("services", SsdModule::services);
|
||||
|
||||
@@ -398,7 +439,7 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
|
||||
engine
|
||||
.register_type::<TypeName>()
|
||||
|
|
@ -100,7 +117,7 @@ index d4ba8e3..764211d 100644
|
|||
.register_get("is_list", TypeName::is_list)
|
||||
.register_get("count", TypeName::count)
|
||||
.register_get("attributes", TypeName::attributes);
|
||||
@@ -488,27 +526,77 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
@@ -488,27 +529,77 @@ pub fn build_engine(messages: Rc<RefCell<Vec<String>>>, debug: bool) -> Engine {
|
||||
.register_fn("all", script_all)
|
||||
.register_fn("none", script_none);
|
||||
|
||||
|
|
@ -195,7 +212,7 @@ index d4ba8e3..764211d 100644
|
|||
macro_rules! register_string_concat_void {
|
||||
($($T: ty),*) => {$({
|
||||
let messages = messages.clone();
|
||||
@@ -682,7 +770,6 @@ pub fn generate_web(
|
||||
@@ -682,7 +773,6 @@ pub fn generate_web(
|
||||
scope.push("module", module);
|
||||
scope.push_constant("defines", defines);
|
||||
scope.push_constant("NL", "\n");
|
||||
|
|
@ -203,7 +220,7 @@ index d4ba8e3..764211d 100644
|
|||
engine.run_with_scope(&mut scope, script)?;
|
||||
let messages = messages.borrow();
|
||||
Ok(messages.join(""))
|
||||
@@ -716,7 +803,6 @@ pub fn generate(
|
||||
@@ -716,7 +806,6 @@ pub fn generate(
|
||||
};
|
||||
scope.push_constant("defines", defines);
|
||||
scope.push_constant("NL", "\n");
|
||||
|
|
|
|||
Loading…
Reference in New Issue