1234use jrsonnet_evaluator::{5 error::Result,6 function::builtin,7 operator::evaluate_mod_op,8 stdlib::std_format,9 typed::{Any, Either, Either2},10 val::{equals, primitive_equals},11 IStr, Val,12};1314#[builtin]15pub fn builtin_mod(a: Either![f64, IStr], b: Any) -> Result<Any> {16 use Either2::*;17 Ok(Any(evaluate_mod_op(18 &match a {19 A(v) => Val::Num(v),20 B(s) => Val::Str(s),21 },22 &b.0,23 )?))24}2526#[builtin]27pub fn builtin_primitive_equals(a: Any, b: Any) -> Result<bool> {28 primitive_equals(&a.0, &b.0)29}3031#[builtin]32pub fn builtin_equals(a: Any, b: Any) -> Result<bool> {33 equals(&a.0, &b.0)34}3536#[builtin]37pub fn builtin_format(str: IStr, vals: Any) -> Result<String> {38 std_format(str, vals.0)39}