Skip to main content

Module resolve

Module resolve 

Source
Expand description

Author-time ${…} variable resolution (ADR-0005, TECH-SPEC §8).

${…} is the author-time tier, resolved during lowering — recursively (substituted values may themselves contain ${…}, spike-verified), with a depth cap of MAX_DEPTH. {{…}} is hurl’s run-time tier and passes through untouched. $${ escapes to a literal ${ (applied after the final pass, so escaped text is never re-resolved).

Reference forms: ${param} (scope lookup: step args > macro defaults) · ${env:NAME} / ${env:NAME:-default} (injected snapshot — core reads no environment) · ${run:id} (injected) · ${global:key} (World read at lower time) · ${secret:NAME} (emits the {{NAME}} run-time placeholder and records the name — values never enter lowered text) · ${fake:kind} (deterministic synthetic data).

Structs§

Resolution
A successful resolution: the final text plus what it referenced.
ResolveCtx
Everything a resolution pass may read. All values are injected — resolution itself is pure (core purity).

Enums§

ResolveError
Why a ${…} reference failed to resolve. Codes are stable diagnostic identifiers.
ResolveMode
How strictly to treat values that only exist at run time.

Constants§

MAX_DEPTH
Maximum resolution passes before assuming a reference cycle (TECH-SPEC §4.4).

Functions§

resolve
Resolve every ${…} in text (recursively, ≤ MAX_DEPTH passes), leave {{…}} untouched, then apply $${ escapes. Pure and total.