1use jrsonnet_evaluator::{2 error::Result,3 function::builtin,4 typed::VecVal,5 val::{StrValue, Val},6 IStr, ObjValue,7};89#[builtin]10pub fn builtin_object_fields_ex(11 obj: ObjValue,12 inc_hidden: bool,13 #[cfg(feature = "exp-preserve-order")] preserve_order: Option<bool>,14) -> Result<VecVal> {15 #[cfg(feature = "exp-preserve-order")]16 let preserve_order = preserve_order.unwrap_or(false);17 let out = obj.fields_ex(18 inc_hidden,19 #[cfg(feature = "exp-preserve-order")]20 preserve_order,21 );22 Ok(VecVal(23 out.into_iter()24 .map(StrValue::Flat)25 .map(Val::Str)26 .collect::<Vec<_>>(),27 ))28}2930#[builtin]31pub fn builtin_object_has_ex(obj: ObjValue, f: IStr, inc_hidden: bool) -> Result<bool> {32 Ok(obj.has_field_ex(f, inc_hidden))33}