rune 0.9.0

An embeddable dynamic programming language for Rust.
Documentation
use crate::ir::eval::prelude::*;

impl IrEval for ir::IrAssign {
    type Output = IrValue;

    fn eval(
        &self,
        interp: &mut IrInterpreter<'_>,
        used: Used,
    ) -> Result<Self::Output, IrEvalOutcome> {
        interp.budget.take(self)?;
        let value = self.value.eval(interp, used)?;

        interp
            .scopes
            .mut_target(&self.target, move |t| self.op.assign(self, t, value))?;

        Ok(IrValue::Unit)
    }
}