pub trait EvalCached<R: Rt, E: UserEvent>:
Debug
+ Default
+ Send
+ Sync
+ 'static {
const NAME: &str;
const NEEDS_CALLSITE: bool;
// Required method
fn eval(
&mut self,
ctx: &mut ExecCtx<R, E>,
from: &CachedVals,
) -> Option<Value>;
// Provided methods
fn init(
_ctx: &mut ExecCtx<R, E>,
_typ: &FnType,
_resolved: Option<&FnType>,
_scope: &Scope,
_from: &[Node<R, E>],
_top_id: ExprId,
) -> Self { ... }
fn typecheck(
&mut self,
_ctx: &mut ExecCtx<R, E>,
_from: &mut [Node<R, E>],
_phase: TypecheckPhase<'_>,
) -> Result<()> { ... }
}Required Associated Constants§
Required Methods§
Provided Methods§
fn init( _ctx: &mut ExecCtx<R, E>, _typ: &FnType, _resolved: Option<&FnType>, _scope: &Scope, _from: &[Node<R, E>], _top_id: ExprId, ) -> Self
fn typecheck( &mut self, _ctx: &mut ExecCtx<R, E>, _from: &mut [Node<R, E>], _phase: TypecheckPhase<'_>, ) -> Result<()>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.