pub trait ValueTrait {
// Required methods
fn make_closure(
e: ExprNodeId,
names: Vec<Symbol>,
env: Environment<(Self, EvalStage)>,
) -> Self
where Self: Sized;
fn get_as_closure(
self,
) -> Option<(Environment<(Self, EvalStage)>, Vec<Symbol>, ExprNodeId)>
where Self: Sized;
fn make_fixpoint(name: Symbol, e: ExprNodeId) -> Self;
fn get_as_fixpoint(self) -> Option<(Symbol, ExprNodeId)>
where Self: Sized;
fn get_as_external_fn(
self,
) -> Option<Rc<RefCell<dyn Fn(&[(Self, TypeNodeId)]) -> Self>>>
where Self: Sized;
}
Required Methods§
fn make_closure(
e: ExprNodeId,
names: Vec<Symbol>,
env: Environment<(Self, EvalStage)>,
) -> Selfwhere
Self: Sized,
fn get_as_closure(
self,
) -> Option<(Environment<(Self, EvalStage)>, Vec<Symbol>, ExprNodeId)>where
Self: Sized,
fn make_fixpoint(name: Symbol, e: ExprNodeId) -> Self
fn get_as_fixpoint(self) -> Option<(Symbol, ExprNodeId)>where
Self: Sized,
fn get_as_external_fn(
self,
) -> Option<Rc<RefCell<dyn Fn(&[(Self, TypeNodeId)]) -> Self>>>where
Self: Sized,
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.