Skip to main content

Module ctx

Module ctx 

Source
Expand description

The fn-body context — the substrate↔user-fn boundary (D8).

A node fn receives a Ctx and communicates only through it: no actions.emit/forward/backward, the whole surface unifies on up/down. Values cross erased as AnyValue; the typed data/emit helpers downcast.

Slice scope: down (DATA/DIRTY/RESOLVED/INVALIDATE/terminal), typed data/ emit, state, and the cleanup hooks (on_deactivation + on_invalidate). up validates control/demand-only (R-ctx-up) and self-handles PAUSE/RESUME/PULL; the INVALIDATE-at-depless-source terminus (D38, C-7) is deferred. See CLEAN-SLATE.md.

Structs§

Ctx
The single argument to a node fn. All emission is explicit via Ctx::down / Ctx::emit; there is no return-value framing (R-fn-contract / D8).
DeferredCtx
An owned, 'static late-emit handle obtained via Ctx::defer — the async-pool boundary. An async node fn stashes one and emits LATER (the deferred result of async work). The emit re-enters the wave engine as a FRESH external wave (its own wave-owner / D30 catch boundary; the leading DIRTY is synthesized like any external tier-3 emit, R-dirty-before-data). Holds the node handle (Core = an Rc) + the dep snapshot at defer time.

Enums§

DepTerminal
A dep’s terminal state, visible to the fn via Ctx::terminal (R-deps-terminal / C-15). None ⇔ the dep is live; Some(..) ⇔ it COMPLETEd or ERRORed. Read by terminalAsRealInput operators (rescue/reduce/*Map) that treat an inner terminal as a real input rather than an absorbed settle.
WaveData
One raw ctx wave-data projection item (R-ctx-wave-data / D77).