Compress i64 values using Pcodec.
(values: &[i64])
| 89 | |
| 90 | /// Compress i64 values using Pcodec. |
| 91 | pub fn encode_i64(values: &[i64]) -> Result<Vec<u8>, CodecError> { |
| 92 | let count = values.len() as u32; |
| 93 | let compressed = pco::standalone::simple_compress(values, &pco::ChunkConfig::default()) |
| 94 | .map_err(|e| CodecError::CompressFailed { |
| 95 | detail: format!("pcodec i64: {e}"), |
| 96 | })?; |
| 97 | |
| 98 | let mut out = Vec::with_capacity(5 + compressed.len()); |
| 99 | out.push(TAG_I64); |
| 100 | out.extend_from_slice(&count.to_le_bytes()); |
| 101 | out.extend_from_slice(&compressed); |
| 102 | Ok(out) |
| 103 | } |
| 104 | |
| 105 | /// Decompress Pcodec i64 data. |
| 106 | pub fn decode_i64(data: &[u8]) -> Result<Vec<i64>, CodecError> { |