hydroflow 0.10.0

Hydro's low-level dataflow runtime and IR
Documentation
---
source: hydroflow/tests/surface_singleton.rs
expression: "df.meta_graph().unwrap().to_dot(& Default :: default())"
---
digraph {
    node [fontname="Monaco,Menlo,Consolas,"Droid Sans Mono",Inconsolata,"Courier New",monospace", style=filled];
    edge [fontname="Monaco,Menlo,Consolas,"Droid Sans Mono",Inconsolata,"Courier New",monospace"];
    n1v1 [label="(n1v1) source_iter(1..=10)", shape=invhouse, fillcolor="#88aaff"]
    n2v1 [label="(n2v1) source_iter(3..=5)", shape=invhouse, fillcolor="#88aaff"]
    n3v1 [label="(n3v1) map(Max::new)", shape=invhouse, fillcolor="#88aaff"]
    n4v1 [label="(n4v1) lattice_reduce()", shape=invhouse, fillcolor="#88aaff"]
    n5v1 [label="(n5v1) tee()", shape=house, fillcolor="#ffff88"]
    n6v1 [label="(n6v1) identity::<Max<_>>()", shape=invhouse, fillcolor="#88aaff"]
    n7v1 [label="(n7v1) cross_join()", shape=invhouse, fillcolor="#88aaff"]
    n8v1 [label="(n8v1) filter(|(value, max_of_stream2)| { value <= max_of_stream2.as_reveal_ref() })", shape=invhouse, fillcolor="#88aaff"]
    n9v1 [label="(n9v1) map(|(x, _max)| (context.current_tick(), x))", shape=invhouse, fillcolor="#88aaff"]
    n10v1 [label="(n10v1) for_each(|x| filter_send.send(x).unwrap())", shape=house, fillcolor="#ffff88"]
    n11v1 [label="(n11v1) map(|x: Max<_>| (context.current_tick(), x.into_reveal()))", shape=house, fillcolor="#ffff88"]
    n12v1 [label="(n12v1) for_each(|x| max_send.send(x).unwrap())", shape=house, fillcolor="#ffff88"]
    n13v1 [label="(n13v1) handoff", shape=parallelogram, fillcolor="#ddddff"]
    n14v1 [label="(n14v1) handoff", shape=parallelogram, fillcolor="#ddddff"]
    n2v1 -> n3v1
    n4v1 -> n5v1
    n3v1 -> n13v1
    n1v1 -> n7v1 [label="0"]
    n6v1 -> n7v1 [label="1"]
    n5v1 -> n14v1
    n9v1 -> n10v1
    n8v1 -> n9v1
    n7v1 -> n8v1
    n11v1 -> n12v1
    n5v1 -> n11v1
    n13v1 -> n4v1 [color=red]
    n14v1 -> n6v1
    subgraph "cluster n1v1" {
        fillcolor="#dddddd"
        style=filled
        label = "sg_1v1\nstratum 0"
        n2v1
        n3v1
        subgraph "cluster_sg_1v1_var_stream2" {
            label="var stream2"
            n2v1
            n3v1
        }
    }
    subgraph "cluster n2v1" {
        fillcolor="#dddddd"
        style=filled
        label = "sg_2v1\nstratum 0"
        n1v1
        n6v1
        n7v1
        n8v1
        n9v1
        n10v1
        subgraph "cluster_sg_2v1_var_filtered_stream2" {
            label="var filtered_stream2"
            n7v1
            n8v1
            n9v1
            n10v1
        }
        subgraph "cluster_sg_2v1_var_stream1" {
            label="var stream1"
            n1v1
        }
    }
    subgraph "cluster n3v1" {
        fillcolor="#dddddd"
        style=filled
        label = "sg_3v1\nstratum 0"
        n4v1
        n5v1
        n11v1
        n12v1
        subgraph "cluster_sg_3v1_var_max_of_stream2" {
            label="var max_of_stream2"
            n4v1
            n5v1
        }
    }
}