git.delta.rocks / jrsonnet / refs/commits / c0efb56b85fa

difftreelog

feat add std.is_even, std.is_odd, std.is_integer and std.is_decimal

Paweł Bęza2023-07-11parent: #0d33992.patch.diff
in: master
Upstream issue: https://github.com/google/go-jsonnet/pull/702

2 files changed

modifiedcrates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth
--- a/crates/jrsonnet-stdlib/src/lib.rs
+++ b/crates/jrsonnet-stdlib/src/lib.rs
@@ -105,6 +105,10 @@
 		("mantissa", builtin_mantissa::INST),
 		("exponent", builtin_exponent::INST),
 		("round", builtin_round::INST),
+		("isEven", builtin_is_even::INST),
+		("isOdd", builtin_is_odd::INST),
+		("isInteger", builtin_is_integer::INST),
+		("isDecimal", builtin_is_decimal::INST),
 		// Operator
 		("mod", builtin_mod::INST),
 		("primitiveEquals", builtin_primitive_equals::INST),
modifiedcrates/jrsonnet-stdlib/src/math.rsdiffbeforeafterboth
120 x.round()120 x.round()
121}121}
122
123#[builtin]
124pub fn builtin_is_even(x: f64) -> bool {
125 builtin_round(x) % 2.0 == 0.0
126}
127
128#[builtin]
129pub fn builtin_is_odd(x: f64) -> bool {
130 builtin_round(x) % 2.0 == 1.0
131}
132
133#[builtin]
134pub fn builtin_is_integer(x: f64) -> bool {
135 builtin_round(x) == x
136}
137
138#[builtin]
139pub fn builtin_is_decimal(x: f64) -> bool {
140 builtin_round(x) != x
141}
122142