pub trait SourceEval {
// Required methods
fn eval_class(&self) -> EvalClass;
fn evaluate(
&self,
ctx: Option<&EvalContext<'_>>,
) -> Result<EvaluatedSource, EvalError>;
}Expand description
Required Methods§
Sourcefn eval_class(&self) -> EvalClass
fn eval_class(&self) -> EvalClass
Classify this source for the IR planner per spec
§10.7.0. See EvalClass.
Sourcefn evaluate(
&self,
ctx: Option<&EvalContext<'_>>,
) -> Result<EvaluatedSource, EvalError>
fn evaluate( &self, ctx: Option<&EvalContext<'_>>, ) -> Result<EvaluatedSource, EvalError>
Materialize this source.
Static sources (Literal / IntRange / ContinuousInterval
/ Distribution) accept ctx = None. Context-required
sources (Generator / WorkloadParamList) require
Some(ctx) and return EvalError::NeedsContext
otherwise.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".