Skip to main content

Module fixture

Module fixture 

Source
Expand description

Init-time scope fixture and cycle-time pull plan.

Implements SRD 32 §“Init-Time Fixture and Consumer Self- Registration”. Each op-template consumer (validation, conditional, throttle, …) registers the Polydat names it will read at cycle time into a shared ScopeFixture. The fixture is sealed once construction completes and yields a PullPlan whose entries are materialized per cycle into a ResolvedPulls buffer indexed by the PullHandles the consumer received at registration.

This is the only path by which wrappers gain access to GK values at cycle time (SRD 31 §“Pull plan vs bind plan”). The prior side channel — wrapper names threaded through synthesis::resolve_with_extras into ResolvedFields — has been removed; the resolver now exposes resolve_with_field_pulls, which carries op-field bind points only (the adapter-facing read).

Structs§

ExecCtx
Cycle-time bundle handed to every dispenser via OpDispenser::execute. Adapters use fields exclusively; wrappers read pulls via stored handles.
PullHandle
Opaque, copy-able handle into a PullPlan. The only way to turn a handle into a value is ResolvedPulls::get.
PullPlan
Sealed init-time plan. One entry per unique name registered. Owns an Arc<PolydatProgram> so cycle-time resolve only needs the per-fiber state.
ResolvedPulls
Cycle-time materialization of a PullPlan.
ScopeFixture
Init-time accumulator for consumer-declared pulls.

Traits§

OpConsumer
Trait every cross-cutting wrapper that reads Polydat values must implement. The activity construction loop calls fixture once per template per consumer; failures (closed-vocab violation, missing required field, unresolvable name) are returned as Err and abort construction loudly.