pub fn interpolate_with_lookup<F>(
text: &str,
lookup: F,
) -> Result<String, String>Expand description
Iterative leaf-placeholder substitution with escape handling,
round cap, and final unresolved-name check. The lookup
closure decides where each leaf’s value comes from.
Public so callers like the synthesis-time clause probe can compose their own lookup (parent kernel + workload params + clause probes) without reimplementing the iterative loop.