rl_lang/interpreter/stdlib/array/
arr_first.rs1use crate::{
2 interpreter::{evaluator::Evaluator, values::Value},
3 utils::{errors::Error, span::Span},
4};
5
6pub fn std_arr_first(eval: &mut Evaluator, array: Value, span: Span) -> Result<Value, Error> {
7 match array {
8 Value::Values { items, .. } => match items.into_iter().next() {
9 Some(v) => Ok(v),
10 None => Err(eval.err("arr_first() called on empty array".to_string(), span)),
11 },
12 _ => Err(eval.err("arr_first() accepts only arrays".to_string(), span)),
13 }
14}