git.delta.rocks / jrsonnet / refs/commits / 00b3f93343a7

difftreelog

feat std.any, std.all

Yaroslav Bolyukin2022-04-20parent: #7123b5d.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth
135 ("asciiLower".into(), builtin_ascii_lower::INST),135 ("asciiLower".into(), builtin_ascii_lower::INST),
136 ("member".into(), builtin_member::INST),136 ("member".into(), builtin_member::INST),
137 ("count".into(), builtin_count::INST),137 ("count".into(), builtin_count::INST),
138 ("any".into(), builtin_any::INST),
139 ("all".into(), builtin_all::INST),
138 ].iter().cloned().collect()140 ].iter().cloned().collect()
139 };141 };
140}142}
669 Ok(count)671 Ok(count)
670}672}
673
674#[jrsonnet_macros::builtin]
675fn builtin_any(arr: ArrValue) -> Result<bool> {
676 for v in arr.iter() {
677 let v: bool = v?.try_into()?;
678 if v {
679 return Ok(true);
680 }
681 }
682 Ok(false)
683}
684
685#[jrsonnet_macros::builtin]
686fn builtin_all(arr: ArrValue) -> Result<bool> {
687 for v in arr.iter() {
688 let v: bool = v?.try_into()?;
689 if !v {
690 return Ok(false);
691 }
692 }
693 Ok(true)
694}
671695
modifiedcrates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth
40 mantissa:: $intrinsic(mantissa),40 mantissa:: $intrinsic(mantissa),
41 exponent:: $intrinsic(exponent),41 exponent:: $intrinsic(exponent),
4242
43 any:: $intrinsic(any),
44 all:: $intrinsic(all),
45
43 isString(v):: std.type(v) == 'string',46 isString(v):: std.type(v) == 'string',
44 isNumber(v):: std.type(v) == 'number',47 isNumber(v):: std.type(v) == 'number',
45 isBoolean(v):: std.type(v) == 'boolean',48 isBoolean(v):: std.type(v) == 'boolean',