--- a/crates/jrsonnet-evaluator/src/manifest.rs +++ b/crates/jrsonnet-evaluator/src/manifest.rs @@ -241,7 +241,6 @@ Minify => {} }; - buf.push_str(cur_padding); State::push_description( || format!("elem <{i}> manifestification"), || manifest_json_ex_buf(&item, buf, cur_padding, options), @@ -298,8 +297,8 @@ buf.push_str(options.newline); buf.push_str(cur_padding); } - ToString => buf.push(' '), - Minify => {} + ToString if i != 0 => buf.push(' '), + Minify | ToString => {} } escape_string_json_buf(&key, buf); --- a/crates/jrsonnet-stdlib/src/lib.rs +++ b/crates/jrsonnet-stdlib/src/lib.rs @@ -164,7 +164,7 @@ ("objectRemoveKey", builtin_object_remove_key::INST), // Manifest ("escapeStringJson", builtin_escape_string_json::INST), - ("escapeStringPython", builtin_escape_string_json::INST), + ("escapeStringPython", builtin_escape_string_python::INST), ("escapeStringXML", builtin_escape_string_xml::INST), ("manifestJsonEx", builtin_manifest_json_ex::INST), ("manifestJson", builtin_manifest_json::INST), --- a/crates/jrsonnet-stdlib/src/manifest/mod.rs +++ b/crates/jrsonnet-stdlib/src/manifest/mod.rs @@ -19,6 +19,11 @@ } #[builtin] +pub fn builtin_escape_string_python(str: IStr) -> Result { + Ok(escape_string_json(&str)) +} + +#[builtin] pub fn builtin_manifest_json_ex( value: Val, indent: String, @@ -164,13 +169,13 @@ } #[builtin] pub fn builtin_manifest_python_vars( - v: Val, + conf: Val, #[default(false)] #[cfg(feature = "exp-preserve-order")] preserve_order: bool, ) -> Result { - v.manifest(PythonVarsFormat::std( + conf.manifest(PythonVarsFormat::std( #[cfg(feature = "exp-preserve-order")] preserve_order, )) --- a/crates/jrsonnet-stdlib/src/strings.rs +++ b/crates/jrsonnet-stdlib/src/strings.rs @@ -37,8 +37,8 @@ } #[builtin] -pub fn builtin_escape_string_dollars(str: String) -> String { - str.replace('$', "$$") +pub fn builtin_escape_string_dollars(str_: String) -> String { + str_.replace('$', "$$") } #[builtin]