Skip to main content

Module part

Module part 

Source
Expand description

Part: what a program builds, as a memo table — one node per step and target it produces — and StepContext, what a step declares its nodes through (StepContext::produce).

A make runs when its node is new, its arguments differ, or something it read changed; nothing else ever runs. Each node keeps what it read (Read); it is reused while its arguments are equal and every read holds now. A node made again into a value equal to the last keeps its version, so what read it is reused in turn. A node of a target that is kept between processes is taken from what an earlier process kept, if it was made so there, before it is made (see crate::kept).

Structs§

Part
What a program builds: a node per step and target it produced, the order of the steps it last ran, and the inputs and state it ran with. Read only through a Reader: Part::current, Part::before, Part::after.
StepContext
What a step is run with: the part, the runner running it, and its own id — what everything it produces is named after. A step only declares what it produces (StepContext::produce); what takes work is done in the makes.

Constants§

ACTIVE
What the target a step’s StepContext::active comes to is named, before the step’s id.

Type Aliases§

Make
What makes a node’s value from its arguments and what it reads. A plain function, not a closure: what it makes may depend only on its arguments, which a reuse compares, and on what it reads, which is recorded. A value captured from outside would be neither, and the node would be reused after it changed: