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

difftreelog

feat std.exp builtin

Yaroslav Bolyukin2021-07-12parent: #7025475.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
@@ -96,6 +96,7 @@
 			("asin".into(), builtin_asin),
 			("acos".into(), builtin_acos),
 			("atan".into(), builtin_atan),
+			("exp".into(), builtin_exp),
 			("extVar".into(), builtin_ext_var),
 			("native".into(), builtin_native),
 			("filter".into(), builtin_filter),
@@ -367,6 +368,14 @@
 	})
 }
 
+fn builtin_exp(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
+	parse_args!(context, "exp", args, 1, [
+		0, x: ty!(number) => Val::Num;
+	], {
+		Ok(Val::Num(x.exp()))
+	})
+}
+
 fn builtin_ext_var(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
 	parse_args!(context, "extVar", args, 1, [
 		0, x: ty!(string) => Val::Str;
modifiedcrates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth
34 acos:: $intrinsic(acos),34 acos:: $intrinsic(acos),
35 atan:: $intrinsic(atan),35 atan:: $intrinsic(atan),
3636
37 exp:: $intrinsic(exp),
38
37 isString(v):: std.type(v) == 'string',39 isString(v):: std.type(v) == 'string',
38 isNumber(v):: std.type(v) == 'number',40 isNumber(v):: std.type(v) == 'number',
39 isBoolean(v):: std.type(v) == 'boolean',41 isBoolean(v):: std.type(v) == 'boolean',