node_flow/flows/parallel_flow/
mod.rs1mod builder;
2pub use builder::*;
3mod flow;
4pub use flow::*;
5
6use crate::flows::NodeResult;
7mod chain_run;
8
9pub trait Joiner<'a, Input, Output, Error, Context>: Send + Sync {
17 fn join(
19 &self,
20 input: Input,
21 context: &'a mut Context,
22 ) -> impl Future<Output = NodeResult<Output, Error>> + Send;
23}
24
25impl<'a, Input, Output, Error, Context, T, F> Joiner<'a, Input, Output, Error, Context> for T
26where
27 Input: Send,
28 F: Future<Output = NodeResult<Output, Error>> + Send + 'a,
29 T: Fn(Input, &'a mut Context) -> F + Send + Sync,
30 Context: 'a,
31{
32 fn join(
33 &self,
34 input: Input,
35 context: &'a mut Context,
36 ) -> impl Future<Output = NodeResult<Output, Error>> {
37 (self)(input, context)
38 }
39}