use mumu::parser::interpreter::Interpreter;
use mumu::parser::types::Value;
pub fn array_init_bridge(_interp: &mut Interpreter, args: Vec<Value>) -> Result<Value, String> {
if args.len() != 1 {
return Err("array:init expects exactly one argument".to_string());
}
match &args[0] {
Value::IntArray(xs) => {
let n = xs.len().saturating_sub(1);
Ok(Value::IntArray(xs[..n].to_vec()))
}
Value::FloatArray(xs) => {
let n = xs.len().saturating_sub(1);
Ok(Value::FloatArray(xs[..n].to_vec()))
}
Value::StrArray(xs) => {
let n = xs.len().saturating_sub(1);
Ok(Value::StrArray(xs[..n].to_vec()))
}
Value::BoolArray(xs) => {
let n = xs.len().saturating_sub(1);
Ok(Value::BoolArray(xs[..n].to_vec()))
}
Value::MixedArray(xs) => {
let n = xs.len().saturating_sub(1);
Ok(Value::MixedArray(xs[..n].to_vec()))
}
other => Err(format!(
"array:init => expected an array, got {:?}",
other
)),
}
}