refactor: 将代码按功能模块重新组织到 core/runtime/control 等目录 feat(core): 添加 Context、FlowNode 等核心 trait 和类型 feat(runtime): 实现 FlowEngine 和状态管理 feat(control): 添加顺序/并行/条件控制流节点 feat(nodes): 实现 HTTP/DB/MQ 等业务节点 docs: 更新 README 添加架构说明和快速开始示例 test: 添加性能测试脚本和示例代码
2020 lines
101 KiB
Markdown
2020 lines
101 KiB
Markdown
# 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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
error[E0277]: the trait bound `Arc<ForkJoinNode>: 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<ForkJoinNode>`
|
|
|
|
|
= 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<Arc<ForkJoinNode>>` to `Arc<dyn dsl_flow::FlowNode>`
|
|
= 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<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
= 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<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
|
|
= note: required for `anyhow::Error` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
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
|