1use jrsonnet_evaluator::{2 error::Result,3 function::builtin,4 stdlib::manifest::{5 escape_string_json, manifest_json_ex, manifest_yaml_ex, ManifestJsonOptions, ManifestType,6 ManifestYamlOptions,7 },8 typed::Any,9 IStr,10};1112#[builtin]13pub fn builtin_escape_string_json(str_: IStr) -> Result<String> {14 Ok(escape_string_json(&str_))15}1617#[builtin]18pub fn builtin_manifest_json_ex(19 value: Any,20 indent: IStr,21 newline: Option<IStr>,22 key_val_sep: Option<IStr>,23 #[cfg(feature = "exp-preserve-order")] preserve_order: Option<bool>,24) -> Result<String> {25 let newline = newline.as_deref().unwrap_or("\n");26 let key_val_sep = key_val_sep.as_deref().unwrap_or(": ");27 manifest_json_ex(28 &value.0,29 &ManifestJsonOptions {30 padding: &indent,31 mtype: ManifestType::Std,32 newline,33 key_val_sep,34 #[cfg(feature = "exp-preserve-order")]35 preserve_order: preserve_order.unwrap_or(false),36 },37 )38}3940#[builtin]41pub fn builtin_manifest_yaml_doc(42 value: Any,43 indent_array_in_object: Option<bool>,44 quote_keys: Option<bool>,45 #[cfg(feature = "exp-preserve-order")] preserve_order: Option<bool>,46) -> Result<String> {47 manifest_yaml_ex(48 &value.0,49 &ManifestYamlOptions {50 padding: " ",51 arr_element_padding: if indent_array_in_object.unwrap_or(false) {52 " "53 } else {54 ""55 },56 quote_keys: quote_keys.unwrap_or(true),57 #[cfg(feature = "exp-preserve-order")]58 preserve_order: preserve_order.unwrap_or(false),59 },60 )61}