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). - Deferred
Ctx - An owned,
'staticlate-emit handle obtained viaCtx::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= anRc) + 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 byterminalAsRealInputoperators (rescue/reduce/*Map) that treat an inner terminal as a real input rather than an absorbed settle. - Wave
Data - One raw ctx wave-data projection item (R-ctx-wave-data / D77).