Delta → FastLanes → rANS: i64 cold tier.
(values: &[i64])
| 301 | |
| 302 | /// Delta → FastLanes → rANS: i64 cold tier. |
| 303 | fn encode_delta_fastlanes_rans(values: &[i64]) -> Result<Vec<u8>, CodecError> { |
| 304 | if values.is_empty() { |
| 305 | return Ok(crate::rans::encode(&crate::fastlanes::encode(&[]))); |
| 306 | } |
| 307 | |
| 308 | let mut deltas = Vec::with_capacity(values.len()); |
| 309 | deltas.push(values[0]); |
| 310 | for i in 1..values.len() { |
| 311 | deltas.push(values[i].wrapping_sub(values[i - 1])); |
| 312 | } |
| 313 | |
| 314 | let packed = crate::fastlanes::encode(&deltas); |
| 315 | Ok(crate::rans::encode(&packed)) |
| 316 | } |
| 317 | |
| 318 | fn decode_delta_fastlanes_rans(data: &[u8]) -> Result<Vec<i64>, CodecError> { |
| 319 | let packed = crate::rans::decode(data)?; |
no test coverage detected