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