difftreelog
fix std.decodeUTF8 should be lossy by default
in: master
6 files changed
crates/jrsonnet-stdlib/src/encoding.rsdiffbeforeafterboth1use base64::{engine::general_purpose::STANDARD, Engine};1use base64::{engine::general_purpose::STANDARD, Engine};2use jrsonnet_evaluator::{2use jrsonnet_evaluator::{3 bail,3 function::builtin,4 function::builtin,4 runtime_error,5 runtime_error,5 typed::{Either, Either2},6 typed::{Either, Either2},12}13}131414#[builtin]15#[builtin]15pub fn builtin_decode_utf8(arr: IBytes) -> Result<IStr> {16pub fn builtin_decode_utf8(arr: IBytes, #[default(true)] lossy: bool) -> Result<IStr> {16 arr.cast_str().ok_or_else(|| runtime_error!("bad utf8"))17 match arr.clone().cast_str() {18 Some(s) => Ok(s),19 None if lossy => Ok(String::from_utf8_lossy(arr.as_slice()).into()),20 None => {21 bail!("bad utf8")22 }23 }17}24}182519#[builtin]26#[builtin]tests/golden/issue187.jsonnetdiffbeforeafterbothno changes
tests/golden/issue187.jsonnet.goldendiffbeforeafterbothno changes
tests/golden/issue187.rev.jsonnetdiffbeforeafterbothno changes
tests/golden/issue187.rev.jsonnet.goldendiffbeforeafterbothno changes
tests/suite/std_param_names.jsonnetdiffbeforeafterboth129 parseJson: ['str'],129 parseJson: ['str'],130 parseYaml: ['str'],130 parseYaml: ['str'],131 encodeUTF8: ['str'],131 encodeUTF8: ['str'],132 decodeUTF8: ['arr'],132 decodeUTF8: ['arr', 'lossy'],133133134 sum: ['arr'],134 sum: ['arr'],135 avg: ['arr', 'onEmpty'],135 avg: ['arr', 'onEmpty'],