diff --git a/fastfield_codecs/benches/bench.rs b/fastfield_codecs/benches/bench.rs index 0dfad1e7c..405de8714 100644 --- a/fastfield_codecs/benches/bench.rs +++ b/fastfield_codecs/benches/bench.rs @@ -34,7 +34,7 @@ mod tests { data: &[u64], ) { let mut bytes = vec![]; - S::create( + S::serialize( &mut bytes, &data, stats_from_vec(&data), @@ -52,7 +52,7 @@ mod tests { fn bench_create(b: &mut Bencher, data: &[u64]) { let mut bytes = vec![]; b.iter(|| { - S::create( + S::serialize( &mut bytes, &data, stats_from_vec(&data), diff --git a/fastfield_codecs/src/bitpacked.rs b/fastfield_codecs/src/bitpacked.rs index 01b363c52..f7422b351 100644 --- a/fastfield_codecs/src/bitpacked.rs +++ b/fastfield_codecs/src/bitpacked.rs @@ -101,7 +101,7 @@ pub struct BitpackedFastFieldSerializer {} impl FastFieldCodecSerializer for BitpackedFastFieldSerializer { const NAME: &'static str = "Bitpacked"; const ID: u8 = 1; - /// Creates a new fast field serializer. + /// Serializes data with the BitpackedFastFieldSerializer. /// /// The serializer in fact encode the values by bitpacking /// `(val - min_value)`. @@ -109,7 +109,7 @@ impl FastFieldCodecSerializer for BitpackedFastFieldSerializer { /// It requires a `min_value` and a `max_value` to compute /// compute the minimum number of bits required to encode /// values. - fn create( + fn serialize( write: &mut impl Write, _fastfield_accessor: &impl FastFieldDataAccess, stats: FastFieldStats, diff --git a/fastfield_codecs/src/lib.rs b/fastfield_codecs/src/lib.rs index 93128728b..f14cad8df 100644 --- a/fastfield_codecs/src/lib.rs +++ b/fastfield_codecs/src/lib.rs @@ -27,7 +27,7 @@ pub trait FastFieldCodecSerializer { const NAME: &'static str; const ID: u8; - /// returns an estimate of the compression ratio. if the compressor is unable to handle the + /// Returns an estimate of the compression ratio. if the compressor is unable to handle the /// data it needs to return f32::MAX. /// The baseline is uncompressed 64bit data. /// @@ -35,7 +35,10 @@ pub trait FastFieldCodecSerializer { /// computational complexity. fn estimate(fastfield_accessor: &impl FastFieldDataAccess, stats: FastFieldStats) -> f32; - fn create( + /// Serializes the data using the serializer into write. + /// There are multiple iterators, in case the codec needs to read the data multiple times. + /// The iterators should be preferred over using fastfield_accessor for performance reasons. + fn serialize( write: &mut impl Write, fastfield_accessor: &impl FastFieldDataAccess, stats: FastFieldStats, @@ -94,7 +97,7 @@ mod tests { return (estimation, 0.0); } let mut out = vec![]; - S::create( + S::serialize( &mut out, &data, crate::tests::stats_from_vec(&data), diff --git a/fastfield_codecs/src/linearinterpol.rs b/fastfield_codecs/src/linearinterpol.rs index f38c3855f..e5286a0e6 100644 --- a/fastfield_codecs/src/linearinterpol.rs +++ b/fastfield_codecs/src/linearinterpol.rs @@ -114,7 +114,7 @@ impl FastFieldCodecSerializer for LinearInterpolFastFieldSerializer { const NAME: &'static str = "LinearInterpol"; const ID: u8 = 2; /// Creates a new fast field serializer. - fn create( + fn serialize( write: &mut impl Write, fastfield_accessor: &impl FastFieldDataAccess, stats: FastFieldStats, diff --git a/fastfield_codecs/src/main.rs b/fastfield_codecs/src/main.rs index ae759468e..cb5c665aa 100644 --- a/fastfield_codecs/src/main.rs +++ b/fastfield_codecs/src/main.rs @@ -99,7 +99,7 @@ pub fn serialize_with_codec(data: &[u64]) -> (f32, return (estimation, 0.0, S::NAME); } let mut out = vec![]; - S::create( + S::serialize( &mut out, &data, stats_from_vec(&data), diff --git a/fastfield_codecs/src/multilinearinterpol.rs b/fastfield_codecs/src/multilinearinterpol.rs index a00836af7..0015fc76b 100644 --- a/fastfield_codecs/src/multilinearinterpol.rs +++ b/fastfield_codecs/src/multilinearinterpol.rs @@ -213,7 +213,7 @@ impl FastFieldCodecSerializer for MultiLinearInterpolFastFieldSerializer { const NAME: &'static str = "MultiLinearInterpol"; const ID: u8 = 3; /// Creates a new fast field serializer. - fn create( + fn serialize( write: &mut impl Write, fastfield_accessor: &impl FastFieldDataAccess, stats: FastFieldStats, diff --git a/src/fastfield/serializer/mod.rs b/src/fastfield/serializer/mod.rs index 6d4f0455b..12398d37a 100644 --- a/src/fastfield/serializer/mod.rs +++ b/src/fastfield/serializer/mod.rs @@ -104,7 +104,7 @@ impl CompositeFastFieldSerializer { id.serialize(field_write)?; match name { BitpackedFastFieldSerializer::NAME => { - BitpackedFastFieldSerializer::create( + BitpackedFastFieldSerializer::serialize( field_write, &fastfield_accessor, stats, @@ -113,7 +113,7 @@ impl CompositeFastFieldSerializer { )?; } LinearInterpolFastFieldSerializer::NAME => { - LinearInterpolFastFieldSerializer::create( + LinearInterpolFastFieldSerializer::serialize( field_write, &fastfield_accessor, stats, @@ -122,7 +122,7 @@ impl CompositeFastFieldSerializer { )?; } MultiLinearInterpolFastFieldSerializer::NAME => { - MultiLinearInterpolFastFieldSerializer::create( + MultiLinearInterpolFastFieldSerializer::serialize( field_write, &fastfield_accessor, stats,