sl_compiler/compile/
util.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::SloshVm;
use slvm::{VMError, VMResult, Value};

pub(crate) fn get_args_iter<'vm>(
    env: &'vm SloshVm,
    args: Value,
    name: &str,
) -> VMResult<Box<dyn Iterator<Item = Value> + 'vm>> {
    match args {
        Value::Pair(_) | Value::List(_, _) | Value::Nil => Ok(args.iter(env)),
        _ => Err(VMError::new_compile(format!("{name}, invalid args"))),
    }
}