Compress f64 values using Pcodec.
(values: &[f64])
| 31 | |
| 32 | /// Compress f64 values using Pcodec. |
| 33 | pub fn encode_f64(values: &[f64]) -> Result<Vec<u8>, CodecError> { |
| 34 | let count = values.len() as u32; |
| 35 | let compressed = pco::standalone::simple_compress(values, &pco::ChunkConfig::default()) |
| 36 | .map_err(|e| CodecError::CompressFailed { |
| 37 | detail: format!("pcodec f64: {e}"), |
| 38 | })?; |
| 39 | |
| 40 | let mut out = Vec::with_capacity(5 + compressed.len()); |
| 41 | out.push(TAG_F64); |
| 42 | out.extend_from_slice(&count.to_le_bytes()); |
| 43 | out.extend_from_slice(&compressed); |
| 44 | Ok(out) |
| 45 | } |
| 46 | |
| 47 | /// Decompress Pcodec f64 data. |
| 48 | pub fn decode_f64(data: &[u8]) -> Result<Vec<f64>, CodecError> { |