From a18f0b6c2a9af9a00a78df49b9f60a4ae32ef8e5 Mon Sep 17 00:00:00 2001 From: Лач Date: Thu, 11 Jun 2020 04:05:20 +0000 Subject: [PATCH] feat: obj.objectHasEx support --- --- a/crates/jsonnet-evaluator/src/evaluate.rs +++ b/crates/jsonnet-evaluator/src/evaluate.rs @@ -556,6 +556,24 @@ panic!("bad objectFieldsEx call"); } } + // object, field, includeHidden + ("std", "objectHasEx") => { + assert_eq!(args.len(), 3); + if let (Val::Obj(body), Val::Str(name), Val::Bool(include_hidden)) = ( + evaluate(context.clone(), &args[0].1)?, + evaluate(context.clone(), &args[1].1)?, + evaluate(context, &args[2].1)?, + ) { + Val::Bool( + body.fields_visibility() + .into_iter() + .filter(|(_k, v)| *v || include_hidden) + .any(|(k, _v)| k == name), + ) + } else { + panic!("bad objectHasEx call"); + } + } ("std", "primitiveEquals") => { assert_eq!(args.len(), 2); let (a, b) = ( -- gitstuff