use mumu::parser::types::{Value};
use mumu::parser::interpreter::Interpreter;
pub fn array_tail_bridge(
_interp: &mut Interpreter,
args: Vec<Value>,
) -> Result<Value, String> {
if args.len() != 1 {
return Err("array:tail => expected exactly 1 argument".to_string());
}
let arr_val = &args[0];
match arr_val {
Value::IntArray(xs) => {
if xs.is_empty() {
Ok(Value::IntArray(vec![]))
} else {
Ok(Value::IntArray(xs[1..].to_vec())) }
}
Value::StrArray(ss) => {
if ss.is_empty() {
Ok(Value::StrArray(vec![]))
} else {
Ok(Value::StrArray(ss[1..].to_vec())) }
}
Value::BoolArray(bb) => {
if bb.is_empty() {
Ok(Value::BoolArray(vec![]))
} else {
Ok(Value::BoolArray(bb[1..].to_vec())) }
}
Value::MixedArray(xs) => {
if xs.is_empty() {
Ok(Value::MixedArray(vec![]))
} else {
Ok(Value::MixedArray(xs[1..].to_vec())) }
}
_ => Err("array:tail => argument must be an array".to_string()), }
}