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
81 ("sign", builtin_sign::INST),81 ("sign", builtin_sign::INST),
82 ("max", builtin_max::INST),82 ("max", builtin_max::INST),
83 ("min", builtin_min::INST),83 ("min", builtin_min::INST),
84 ("clamp", builtin_clamp::INST),
85 ("modulo", builtin_modulo::INST),84 ("modulo", builtin_modulo::INST),
86 ("floor", builtin_floor::INST),85 ("floor", builtin_floor::INST),
87 ("ceil", builtin_ceil::INST),86 ("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> {