Expand description
What the compiler and executor need to know about a node, whichever kind it is.
A graph has two sorts of node. A Filter is a
function: same config, same state, same input, same output, which is
what makes content-addressed caching sound. A Step
calls models, reads the world and may pause for a person.
That difference matters to them. It should not reach the machinery around them: resolving inputs from predecessors, catching a panic, emitting a start and a completion, deciding whether an output may be cached — none of it depends on which kind ran. So the two metadata types collapse into one here, and the distinction survives as data on it rather than as a second code path.
The load-bearing part is NodeMeta::cacheable and
NodeMeta::deterministic: From<StepMeta> sets both to false, so
the cache guard the executor already runs skips a step without anyone
writing if is_step.
Structs§
- Node
Meta - A node’s contract, independent of whether it computes or acts.
Enums§
- Node
Outcome - How a node finished.