simple_flows/
simple_flows.rs

1use flarrow_flows::prelude::{thirdparty::*, *};
2
3#[tokio::main]
4async fn main() -> Result<()> {
5    let mut layout = DataflowLayout::new();
6
7    let (_source, output) = layout
8        .node("source", async |builder: &mut NodeIOBuilder| {
9            builder.output("out")
10        })
11        .await;
12
13    let (_operator, (op_in, op_out)) = layout
14        .node("operator", async |builder: &mut NodeIOBuilder| {
15            (builder.input("in"), builder.output("out"))
16        })
17        .await;
18
19    let (_sink, input) = layout
20        .node("sink", async |builder: &mut NodeIOBuilder| {
21            builder.input("in")
22        })
23        .await;
24
25    let layout = layout.build();
26
27    let _flows = Flows::new(layout.clone(), async move |builder: &mut FlowsBuilder| {
28        builder.connect(op_in, output, None)?;
29        builder.connect(input, op_out, None)?;
30
31        Ok(())
32    })
33    .await?;
34
35    Ok(())
36}