pub struct CtfeInterpreter { /* private fields */ }Expand description
The CTFE interpreter evaluates LCNF expressions at compile time.
Implementations§
Source§impl CtfeInterpreter
impl CtfeInterpreter
Sourcepub fn new(decls: &[LcnfFunDecl]) -> Self
pub fn new(decls: &[LcnfFunDecl]) -> Self
Create a new interpreter with access to a module’s declarations.
Sourcepub fn eval_arg(&self, arg: &LcnfArg, ctx: &CtfeContext) -> CtfeResult
pub fn eval_arg(&self, arg: &LcnfArg, ctx: &CtfeContext) -> CtfeResult
Evaluate an argument in the given context.
Sourcepub fn eval_binop(
&self,
op: BinOp,
lhs: &CtfeValue,
rhs: &CtfeValue,
) -> CtfeResult
pub fn eval_binop( &self, op: BinOp, lhs: &CtfeValue, rhs: &CtfeValue, ) -> CtfeResult
Evaluate a binary operation.
Sourcepub fn eval_call(
&mut self,
func_name: &str,
args: Vec<CtfeValue>,
ctx: &mut CtfeContext,
) -> CtfeResult
pub fn eval_call( &mut self, func_name: &str, args: Vec<CtfeValue>, ctx: &mut CtfeContext, ) -> CtfeResult
Evaluate a function call to a (possibly known) function.
Sourcepub fn eval_expr(
&mut self,
expr: &LcnfExpr,
ctx: &mut CtfeContext,
) -> CtfeResult
pub fn eval_expr( &mut self, expr: &LcnfExpr, ctx: &mut CtfeContext, ) -> CtfeResult
Evaluate a full LCNF expression.
Auto Trait Implementations§
impl Freeze for CtfeInterpreter
impl RefUnwindSafe for CtfeInterpreter
impl Send for CtfeInterpreter
impl Sync for CtfeInterpreter
impl Unpin for CtfeInterpreter
impl UnsafeUnpin for CtfeInterpreter
impl UnwindSafe for CtfeInterpreter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more