Skip to main content

Module node

Module node 

Source
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§

NodeMeta
A node’s contract, independent of whether it computes or acts.

Enums§

NodeOutcome
How a node finished.