rl_lang/interpreter/stdlib/math/
min.rs1use crate::{
2 interpreter::{evaluator::Evaluator, values::Value},
3 utils::{errors::Error, span::Span},
4};
5
6pub fn std_min(eval: &mut Evaluator, a: Value, b: Value, span: Span) -> Result<Value, Error> {
7 match (a, b) {
8 (Value::Integer(a), Value::Integer(b)) => Ok(Value::Integer(a.min(b))),
9 (Value::Float(a), Value::Float(b)) => Ok(Value::Float(a.min(b))),
10 (a, b) => Err(eval.err(
11 format!(
12 "min() expects a number, got ({}, {})",
13 a.type_name(),
14 b.type_name()
15 ),
16 span,
17 )),
18 }
19}