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