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
105 ("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 // Operator
109 ("mod", builtin_mod::INST),113 ("mod", builtin_mod::INST),
110 ("primitiveEquals", builtin_primitive_equals::INST),114 ("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