# dsl-flow Test Performance ## Default features - test_rhai_expr_set_and_get: Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 2.565s - test_conditional_node_then_else: warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 0.318s - test_http_node_with_mock: warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 0.300s - test_stateful_engine: warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 0.298s - test_db_and_mq_nodes: warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 0.298s - test_group_parallel_sleep: warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 0.326s - test_expr_set_without_engine_error: warning: unused import: `serde_json::Value` --> dsl-flow/src/engine.rs:5:5 | 5 | use serde_json::Value; | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `rhai::EvalAltResult` --> dsl-flow/src/expr.rs:43:13 | 43 | use rhai::EvalAltResult; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `FlowNode` and `NodeRef` --> dsl-flow/src/dsl.rs:1:19 | 1 | use crate::node::{FlowNode, NodeRef}; | ^^^^^^^^ ^^^^^^^ warning: unused imports: `ForkJoinNode`, `GroupNode`, and `SequenceNode` --> dsl-flow/src/dsl.rs:2:19 | 2 | use crate::node::{SequenceNode, ForkJoinNode, GroupNode, ExprSetNode, ExprGetNode, MergeMode}; | ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::sync::Arc` --> dsl-flow/src/dsl.rs:4:5 | 4 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `FlowNode` --> dsl-flow/src/engine.rs:3:19 | 3 | use crate::node::{FlowNode, NodeOutput, NodeRef, SequenceNode}; | ^^^^^^^^ warning: variable does not need to be mutable --> dsl-flow/src/expr.rs:34:13 | 34 | let mut engine = rhai::Engine::new(); | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:102:5 | 100 | pub struct ExprSetNode { | ----------- field in this struct 101 | id: NodeId, 102 | engine: ExprEngineKind, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: field `engine` is never read --> dsl-flow/src/node.rs:135:5 | 133 | pub struct ExprGetNode { | ----------- field in this struct 134 | id: NodeId, 135 | engine: ExprEngineKind, | ^^^^^^ warning: field `engine` is never read --> dsl-flow/src/node.rs:270:5 | 268 | pub struct ConditionalNode { | --------------- field in this struct 269 | id: NodeId, 270 | engine: ExprEngineKind, | ^^^^^^ warning: `dsl-flow` (lib) generated 10 warnings (run `cargo fix --lib -p dsl-flow` to apply 6 suggestions) Compiling dsl-flow v0.1.0 (/Users/yangshiyou/Develop/code/rust/dsl_flow/dsl-flow) warning: `dsl-flow` (lib test) generated 10 warnings (10 duplicates) warning: unused import: `serde_json::json` --> dsl-flow/examples/basic.rs:2:5 | 2 | use serde_json::json; | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default error[E0277]: the trait bound `Arc: FlowNode` is not satisfied --> dsl-flow/examples/basic.rs:9:26 | 9 | let flow = Flow::new(sequence! { | __________________________^ 10 | | expr_set(ExprEngineKind::Rhai, "1 + 2", "calc.sum"), 11 | | fork_join! { 12 | | expr_set(ExprEngineKind::Rhai, "ctx.calc.sum * 2", "calc.double"), ... | 15 | | }); | |_____^ the trait `FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 2 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/examples/basic.rs:17:53 | 17 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `Box` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:45:53 | 45 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` For more information about this error, try `rustc --explain E0277`. warning: `dsl-flow` (example "basic") generated 1 warning error: could not compile `dsl-flow` (example "basic") due to 2 previous errors; 1 warning emitted warning: build failed, waiting for other jobs to finish... error[E0599]: no method named `clone` found for struct `ConditionalNode` in the current scope --> dsl-flow/tests/flow_tests.rs:62:46 | 62 | let flow = Flow::new(sequence! { (*cond).clone() }); | ^^^^^ method not found in `ConditionalNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:64:53 | 64 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:112:53 | 112 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:129:65 | 129 | let _out1 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:130:64 | 130 | let out2 = engine.run_stateful(s, &flow, ctx.clone()).await?; | ------------------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:146:53 | 146 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:71 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for trait object `dyn dsl_flow::FlowNode` in the current scope --> dsl-flow/tests/flow_tests.rs:159:86 | 159 | let group = group_merge! { "agg.group", merge_mode_array(), (*n1).clone(), (*n2).clone() }; | ^^^^^ method not found in `dyn dsl_flow::FlowNode` error[E0599]: no method named `clone` found for struct `GroupNode` in the current scope --> dsl-flow/tests/flow_tests.rs:160:47 | 160 | let flow = Flow::new(sequence! { (*group).clone() }); | ^^^^^ method not found in `GroupNode` error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:163:51 | 163 | let _ = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` error[E0277]: the trait bound `Arc: dsl_flow::FlowNode` is not satisfied --> dsl-flow/tests/flow_tests.rs:185:26 | 185 | let flow = Flow::new(sequence! { | __________________________^ 186 | | fork_join_merge! { "agg.fork", merge_mode_object_by_id(), 187 | | expr_set(ExprEngineKind::Rhai, "10", "a.x"), 188 | | expr_set(ExprEngineKind::Rhai, "20", "b.y") 189 | | }, 190 | | expr_get(ExprEngineKind::Rhai, "ctx.agg.fork") 191 | | }); | |_____^ the trait `dsl_flow::FlowNode` is not implemented for `Arc` | = help: the following other types implement trait `dsl_flow::FlowNode`: ConditionalNode DbNode ExprGetNode ExprSetNode ForkJoinNode GroupNode HttpNode LineageNode and 3 others = note: required for the cast from `Arc>` to `Arc` = note: this error originates in the macro `sequence` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied --> dsl-flow/tests/flow_tests.rs:193:53 | 193 | let out = engine.run_stateless(&flow, ctx).await?; | --------------------------------------^ doesn't have a size known at compile-time | | | this can't be annotated with `?` because it has type `Result<_, Box>` | = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync` = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = note: required for `Box` to implement `std::error::Error` = note: required for `anyhow::Error` to implement `From>` Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`. error: could not compile `dsl-flow` (test "flow_tests") due to 13 previous errors 0.340s