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

difftreelog

feat std.{sin,cos,tan,asin,acos,atan}

Yaroslav Bolyukin2021-07-12parent: #64b86a5.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth
90 ("log".into(), builtin_log),90 ("log".into(), builtin_log),
91 ("pow".into(), builtin_pow),91 ("pow".into(), builtin_pow),
92 ("sqrt".into(), builtin_sqrt),92 ("sqrt".into(), builtin_sqrt),
93 ("sin".into(), builtin_sin),
94 ("cos".into(), builtin_cos),
95 ("tan".into(), builtin_tan),
96 ("asin".into(), builtin_asin),
97 ("acos".into(), builtin_acos),
98 ("atan".into(), builtin_atan),
93 ("extVar".into(), builtin_ext_var),99 ("extVar".into(), builtin_ext_var),
94 ("native".into(), builtin_native),100 ("native".into(), builtin_native),
95 ("filter".into(), builtin_filter),101 ("filter".into(), builtin_filter),
313 })319 })
314}320}
321
322fn builtin_sin(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
323 parse_args!(context, "sin", args, 1, [
324 0, x: ty!(number) => Val::Num;
325 ], {
326 Ok(Val::Num(x.sin()))
327 })
328}
329
330fn builtin_cos(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
331 parse_args!(context, "cos", args, 1, [
332 0, x: ty!(number) => Val::Num;
333 ], {
334 Ok(Val::Num(x.cos()))
335 })
336}
337
338fn builtin_tan(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
339 parse_args!(context, "tan", args, 1, [
340 0, x: ty!(number) => Val::Num;
341 ], {
342 Ok(Val::Num(x.tan()))
343 })
344}
345
346fn builtin_asin(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
347 parse_args!(context, "asin", args, 1, [
348 0, x: ty!(number) => Val::Num;
349 ], {
350 Ok(Val::Num(x.asin()))
351 })
352}
353
354fn builtin_acos(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
355 parse_args!(context, "acos", args, 1, [
356 0, x: ty!(number) => Val::Num;
357 ], {
358 Ok(Val::Num(x.acos()))
359 })
360}
361
362fn builtin_atan(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
363 parse_args!(context, "atan", args, 1, [
364 0, x: ty!(number) => Val::Num;
365 ], {
366 Ok(Val::Num(x.atan()))
367 })
368}
315369
316fn builtin_ext_var(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {370fn builtin_ext_var(context: Context, _loc: Option<&ExprLocation>, args: &ArgsDesc) -> Result<Val> {
317 parse_args!(context, "extVar", args, 1, [371 parse_args!(context, "extVar", args, 1, [
modifiedcrates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth
--- a/crates/jrsonnet-stdlib/src/std.jsonnet
+++ b/crates/jrsonnet-stdlib/src/std.jsonnet
@@ -27,6 +27,13 @@
   pow:: $intrinsic(pow),
   sqrt:: $intrinsic(sqrt),
 
+  sin:: $intrinsic(sin),
+  cos:: $intrinsic(cos),
+  tan:: $intrinsic(tan),
+  asin:: $intrinsic(asin),
+  acos:: $intrinsic(acos),
+  atan:: $intrinsic(atan),
+
   isString(v):: std.type(v) == 'string',
   isNumber(v):: std.type(v) == 'number',
   isBoolean(v):: std.type(v) == 'boolean',