pub trait Evaluator:
Send
+ Sync
+ Debug {
// Required method
fn evaluate(
&self,
component: &Component,
ctx: &EvalContext,
) -> Result<EvaluatedComponent>;
}Expand description
The contract every evaluator implements. Phase 4 ships exactly one
implementation: HclEvaluator.
Required Methods§
Sourcefn evaluate(
&self,
component: &Component,
ctx: &EvalContext,
) -> Result<EvaluatedComponent>
fn evaluate( &self, component: &Component, ctx: &EvalContext, ) -> Result<EvaluatedComponent>
Reduce component against ctx, returning the resolved IR plus
any diagnostics surfaced during evaluation.
§Errors
Only fatal errors (would-leave-the-IR-malformed) bubble out as
crate::Error. Recoverable failures (cycle in locals, function
call errors, sandboxed file rejects) attach to the returned
EvaluatedComponent.diagnostics instead.