Decode delta-encoded values back to absolute sorted values. Prefix-sum: `out[0] = deltas[0]`, `out[i] = out[i-1] + deltas[i]`.
(deltas: &[u32])
| 26 | /// |
| 27 | /// Prefix-sum: `out[0] = deltas[0]`, `out[i] = out[i-1] + deltas[i]`. |
| 28 | pub fn decode(deltas: &[u32]) -> Vec<u32> { |
| 29 | if deltas.is_empty() { |
| 30 | return Vec::new(); |
| 31 | } |
| 32 | let mut values = Vec::with_capacity(deltas.len()); |
| 33 | values.push(deltas[0]); |
| 34 | for i in 1..deltas.len() { |
| 35 | values.push(values[i - 1] + deltas[i]); |
| 36 | } |
| 37 | values |
| 38 | } |
| 39 | |
| 40 | #[cfg(test)] |
| 41 | mod tests { |
no test coverage detected