pub trait EvalType: EvalTypeMethods + 'static {
type RefType<'a>;
// Required methods
fn type_info() -> TypeInfo;
fn to_ref_type<'a>(&'a self) -> Self::RefType<'a>;
fn register<Ctx: EvalType>(
registry: RegistryAccess<'_, Ctx, Self>,
) -> Result<()>;
// Provided method
fn make_dyn_fn<Ctx: EvalType>(
f: impl for<'a> Fn(&'a Ctx) -> Self::RefType<'a> + Clone + 'static,
) -> DynFn { ... }
}Required Associated Types§
Required Methods§
fn type_info() -> TypeInfo
fn to_ref_type<'a>(&'a self) -> Self::RefType<'a>
fn register<Ctx: EvalType>( registry: RegistryAccess<'_, Ctx, Self>, ) -> Result<()>
Provided Methods§
fn make_dyn_fn<Ctx: EvalType>( f: impl for<'a> Fn(&'a Ctx) -> Self::RefType<'a> + Clone + 'static, ) -> DynFn
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.