difftreelog
perf move C++ compat to native
in: master
3 files changed
crates/jrsonnet-stdlib/src/compat.rsdiffbeforeafterboth1use std::cmp::Ordering;23use jrsonnet_evaluator::{function::builtin, operator::evaluate_compare_op, Result, Val};45#[builtin]6#[allow(non_snake_case)]7pub fn builtin___compare(v1: Val, v2: Val) -> Result<i32> {8 Ok(9 match evaluate_compare_op(&v1, &v2, jrsonnet_parser::BinaryOpType::Lt)? {10 Ordering::Less => -1,11 Ordering::Equal => 0,12 Ordering::Greater => 1,13 },14 )15}crates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/lib.rs
+++ b/crates/jrsonnet-stdlib/src/lib.rs
@@ -219,6 +219,14 @@
("regexQuoteMeta", builtin_regex_quote_meta::INST),
// Compat
("__compare", builtin___compare::INST),
+ ("__compare_array", builtin___compare_array::INST),
+ ("__array_less", builtin___array_less::INST),
+ ("__array_greater", builtin___array_greater::INST),
+ ("__array_less_or_equal", builtin___array_less_or_equal::INST),
+ (
+ "__array_greater_or_equal",
+ builtin___array_greater_or_equal::INST,
+ ),
]
.iter()
.copied()
crates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/std.jsonnet
+++ b/crates/jrsonnet-stdlib/src/std.jsonnet
@@ -89,13 +89,4 @@
error 'find second parameter should be an array, got ' + std.type(arr)
else
std.filter(function(i) arr[i] == value, std.range(0, std.length(arr) - 1)),
-
- // Compat
- __compare_array(arr1, arr2)::
- assert std.isArray(arr1) && std.isArray(arr2);
- std.__compare(arr1, arr2),
- __array_less(arr1, arr2):: std.__compare_array(arr1, arr2) == -1,
- __array_greater(arr1, arr2):: std.__compare_array(arr1, arr2) == 1,
- __array_less_or_equal(arr1, arr2):: std.__compare_array(arr1, arr2) <= 0,
- __array_greater_or_equal(arr1, arr2):: std.__compare_array(arr1, arr2) >= 0,
}