pub struct Node {
pub op: Op,
pub inputs: Vec<OpId>,
pub because: Option<String>,
pub relate: Option<String>,
pub per_session: bool,
pub consumers: usize,
}Fields§
§op: Op§inputs: Vec<OpId>§because: Option<String>Set when this operator is a fallback: which construct had no delta rule.
relate: Option<String>Set on a loop whose body looks a collection up and which crate::relate would not read as
a join: which of its conditions failed.
docs/99 §99.6’s rule for
the shape inference cannot see — “compile it the slow way and say so”. It is separate from
Node::because because this operator is not a fallback: it has a delta rule and applies
it, and what it is missing is the index that would stop it applying it to everything.
per_session: boolTrue when this node reads the session, directly or through an input. §5.3’s boundary: the nodes for which this is false are the shared dataflow, the rest run per subscriber.
consumers: usizeHow many operators read this one. Two or more is §5.3’s shared prefix, at the granularity the engine actually shares at.