difftreelog
feat add std.is_even, std.is_odd, std.is_integer and std.is_decimal
in: master
Upstream issue: https://github.com/google/go-jsonnet/pull/702
2 files changed
crates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth105 ("mantissa", builtin_mantissa::INST),105 ("mantissa", builtin_mantissa::INST),106 ("exponent", builtin_exponent::INST),106 ("exponent", builtin_exponent::INST),107 ("round", builtin_round::INST),107 ("round", builtin_round::INST),108 ("isEven", builtin_is_even::INST),109 ("isOdd", builtin_is_odd::INST),110 ("isInteger", builtin_is_integer::INST),111 ("isDecimal", builtin_is_decimal::INST),108 // Operator112 // Operator109 ("mod", builtin_mod::INST),113 ("mod", builtin_mod::INST),110 ("primitiveEquals", builtin_primitive_equals::INST),114 ("primitiveEquals", builtin_primitive_equals::INST),crates/jrsonnet-stdlib/src/math.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/math.rs
+++ b/crates/jrsonnet-stdlib/src/math.rs
@@ -119,3 +119,23 @@
pub fn builtin_round(x: f64) -> f64 {
x.round()
}
+
+#[builtin]
+pub fn builtin_is_even(x: f64) -> bool {
+ builtin_round(x) % 2.0 == 0.0
+}
+
+#[builtin]
+pub fn builtin_is_odd(x: f64) -> bool {
+ builtin_round(x) % 2.0 == 1.0
+}
+
+#[builtin]
+pub fn builtin_is_integer(x: f64) -> bool {
+ builtin_round(x) == x
+}
+
+#[builtin]
+pub fn builtin_is_decimal(x: f64) -> bool {
+ builtin_round(x) != x
+}