git.delta.rocks / jrsonnet / refs/commits / 414a5eb5193d

difftreelog

feat remove clamp builtin

Petr Portnov2022-11-26parent: #ff64963.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth
--- a/crates/jrsonnet-stdlib/src/lib.rs
+++ b/crates/jrsonnet-stdlib/src/lib.rs
@@ -81,7 +81,6 @@
 		("sign", builtin_sign::INST),
 		("max", builtin_max::INST),
 		("min", builtin_min::INST),
-		("clamp", builtin_clamp::INST),
 		("modulo", builtin_modulo::INST),
 		("floor", builtin_floor::INST),
 		("ceil", builtin_ceil::INST),
modifiedcrates/jrsonnet-stdlib/src/math.rsdiffbeforeafterboth
20 Ok(x.min(y))20 Ok(x.min(y))
21}21}
22
23#[builtin]
24pub fn builtin_clamp(x: f64, min_val: f64, max_val: f64) -> Result<f64> {
25 debug_assert!(x.is_finite(), "jsonnet number are always finite");
26 debug_assert!(min_val.is_finite(), "jsonnet number are always finite");
27 debug_assert!(max_val.is_finite(), "jsonnet number are always finite");
28
29 // `f64::clamp` should noe be used here since it requires extra checks to guarantee NaN-safety
30 Ok(if x < min_val {
31 min_val
32 } else if x > max_val {
33 max_val
34 } else {
35 x
36 })
37}
3822
39#[builtin]23#[builtin]
40pub fn builtin_modulo(a: f64, b: f64) -> Result<f64> {24pub fn builtin_modulo(a: f64, b: f64) -> Result<f64> {