Skip to main content

vortex_btrblocks/schemes/integer/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4//! Integer compression schemes.
5
6mod bitpacking;
7mod delta;
8mod for_;
9mod rle;
10mod runend;
11mod sequence;
12mod sparse;
13mod zigzag;
14
15#[cfg(feature = "pco")]
16mod pco;
17
18pub use bitpacking::BitPackingScheme;
19pub use delta::DeltaScheme;
20pub use for_::FoRScheme;
21#[cfg(feature = "pco")]
22pub use pco::PcoScheme;
23pub use rle::IntRLEScheme;
24pub(crate) use rle::rle_compress;
25pub(crate) use rle::try_compress_delta;
26pub use runend::RunEndScheme;
27pub use sequence::SequenceScheme;
28pub use sparse::SparseScheme;
29// Re-export builtin schemes from vortex-compressor.
30pub use vortex_compressor::builtins::IntDictScheme;
31pub use vortex_compressor::stats::IntegerStats;
32pub use zigzag::ZigZagScheme;
33
34/// Threshold for the average run length in an array before we consider run-length encoding.
35pub(crate) const RUN_LENGTH_THRESHOLD: u32 = 4;
36
37#[cfg(test)]
38mod scheme_selection_tests;
39#[cfg(test)]
40mod tests;