ValueTrait

Trait ValueTrait 

Source
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§

Source

fn make_closure( e: ExprNodeId, names: Vec<Symbol>, env: Environment<(Self, EvalStage)>, ) -> Self
where Self: Sized,

Source

fn get_as_closure( self, ) -> Option<(Environment<(Self, EvalStage)>, Vec<Symbol>, ExprNodeId)>
where Self: Sized,

Source

fn make_fixpoint(name: Symbol, e: ExprNodeId) -> Self

Source

fn get_as_fixpoint(self) -> Option<(Symbol, ExprNodeId)>
where Self: Sized,

Source

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.

Implementors§