rune 0.9.0

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

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

    fn eval(
        &self,
        interp: &mut IrInterpreter<'_>,
        used: Used,
    ) -> Result<Self::Output, IrEvalOutcome> {
        let mut args = Vec::new();

        for arg in &self.args {
            args.push(arg.eval(interp, used)?);
        }

        Ok(interp.call_const_fn(self, &self.target, args, used)?)
    }
}