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

difftreelog

feat std.ceil builtin

Yaroslav Bolyukin2021-07-12parent: #46b4dd0.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/builtin/mod.rs
+++ b/crates/jrsonnet-evaluator/src/builtin/mod.rs
@@ -86,6 +86,7 @@
 			("modulo".into(), builtin_modulo),
 			("mod".into(), builtin_mod),
 			("floor".into(), builtin_floor),
+			("ceil".into(), builtin_ceil),
 			("log".into(), builtin_log),
 			("pow".into(), builtin_pow),
 			("extVar".into(), builtin_ext_var),
@@ -278,6 +279,14 @@
 	})
 }
 
+fn builtin_ceil(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+	parse_args!(context, "ceil", args, 1, [
+		0, x: ty!(number) => Val::Num;
+	], {
+		Ok(Val::Num(x.ceil()))
+	})
+}
+
 fn builtin_log(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
 	parse_args!(context, "log", args, 1, [
 		0, n: ty!(number) => Val::Num;
modifiedcrates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth
12 primitiveEquals:: $intrinsic(primitiveEquals),12 primitiveEquals:: $intrinsic(primitiveEquals),
13 modulo:: $intrinsic(modulo),13 modulo:: $intrinsic(modulo),
14 floor:: $intrinsic(floor),14 floor:: $intrinsic(floor),
15 ceil:: $intrinsic(ceil),
15 log:: $intrinsic(log),16 log:: $intrinsic(log),
16 pow:: $intrinsic(pow),17 pow:: $intrinsic(pow),
17 extVar:: $intrinsic(extVar),18 extVar:: $intrinsic(extVar),