--- a/crates/jrsonnet-stdlib/src/lib.rs +++ b/crates/jrsonnet-stdlib/src/lib.rs @@ -105,6 +105,7 @@ ("mod", builtin_mod::INST), ("primitiveEquals", builtin_primitive_equals::INST), ("equals", builtin_equals::INST), + ("xor", builtin_xor::INST), ("format", builtin_format::INST), // Sort ("sort", builtin_sort::INST), --- a/crates/jrsonnet-stdlib/src/operator.rs +++ b/crates/jrsonnet-stdlib/src/operator.rs @@ -34,6 +34,11 @@ } #[builtin] +pub fn builtin_xor(x: Val, y: Val) -> Result { + Ok(!equals(&x, &y)?) +} + +#[builtin] pub fn builtin_format(str: IStr, vals: Val) -> Result { std_format(&str, vals) }