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
comprehension_forms.md §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.
Literal / IntRange (Static), a context-free Generator
(Static, evaluated in the empty scope), and
ContinuousInterval / Distribution (Distribution) accept
ctx = None. A Generator that references a name and a
WorkloadParamList (ContextRequired) 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".