difftreelog
perf with rfold we can ignore evaluation order
in: master
1 file changed
crates/jrsonnet-stdlib/src/arrays.rsdiffbeforeafterboth183 if let (Val::Str(init), Either2::A(arr)) = (&init, &arr)183 if let (Val::Str(init), Either2::A(arr)) = (&init, &arr)184 && let Some(folder) = func.func().as_folder(FoldKind::Right)184 && let Some(folder) = func.func().as_folder(FoldKind::Right)185 {185 {186 let len = arr.len();187 let mut chunks: Vec<Val> = Vec::with_capacity(len);188 for i in arr.iter_lazy().rev() {189 let v = folder.eval(i)?;190 chunks.push(v);191 }192 let mut buf = String::new();186 let mut buf = String::new();193 for s in chunks.iter().rev() {187 for i in arr.iter_lazy() {194 ToStringFormat.manifest_buf(s, &mut buf)?;188 ToStringFormat.manifest_buf(&folder.eval(i)?, &mut buf)?;195 }189 }196 init.into_flat_in(&mut buf);190 init.into_flat_in(&mut buf);197 return Ok(Val::string(buf));191 return Ok(Val::string(buf));