From f62134de8f74b790240cf476046ea6c586f91c9a Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Mon, 12 Jul 2021 16:44:20 +0000 Subject: [PATCH] feat: std.exp builtin --- --- 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 { + 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 { parse_args!(context, "extVar", args, 1, [ 0, x: ty!(string) => Val::Str; --- a/crates/jrsonnet-stdlib/src/std.jsonnet +++ b/crates/jrsonnet-stdlib/src/std.jsonnet @@ -34,6 +34,8 @@ acos:: $intrinsic(acos), atan:: $intrinsic(atan), + exp:: $intrinsic(exp), + isString(v):: std.type(v) == 'string', isNumber(v):: std.type(v) == 'number', isBoolean(v):: std.type(v) == 'boolean', -- gitstuff