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

difftreelog

feat obj.objectHasEx support

Лач2020-06-11parent: #9f3d170.patch.diff
in: master

1 file changed

modifiedcrates/jsonnet-evaluator/src/evaluate.rsdiffbeforeafterboth
556 panic!("bad objectFieldsEx call");556 panic!("bad objectFieldsEx call");
557 }557 }
558 }558 }
559 // object, field, includeHidden
560 ("std", "objectHasEx") => {
561 assert_eq!(args.len(), 3);
562 if let (Val::Obj(body), Val::Str(name), Val::Bool(include_hidden)) = (
563 evaluate(context.clone(), &args[0].1)?,
564 evaluate(context.clone(), &args[1].1)?,
565 evaluate(context, &args[2].1)?,
566 ) {
567 Val::Bool(
568 body.fields_visibility()
569 .into_iter()
570 .filter(|(_k, v)| *v || include_hidden)
571 .any(|(k, _v)| k == name),
572 )
573 } else {
574 panic!("bad objectHasEx call");
575 }
576 }
559 ("std", "primitiveEquals") => {577 ("std", "primitiveEquals") => {
560 assert_eq!(args.len(), 2);578 assert_eq!(args.len(), 2);
561 let (a, b) = (579 let (a, b) = (