Struct q_compress::Flags
source · [−]pub struct Flags {
pub use_5_bit_code_len: bool,
pub delta_encoding_order: usize,
pub use_min_count_encoding: bool,
}
Expand description
The configuration stored in a .qco file’s header.
During compression, flags are determined based on your CompressorConfig
and the q_compress
version.
Flags affect the encoding of the rest of the file, so decompressing with
the wrong flags will likely cause a corruption error.
Most users will not need to manually instantiate flags; that should be done
internally by Compressor::from_config
.
However, in some circumstances you may want to inspect flags during
decompression.
Fields
use_5_bit_code_len: bool
Whether to use 5 bits to encode the length of a prefix Huffman code,
as opposed to 4.
Earlier versions of q_compress
used 4, which was insufficient for
Huffman codes that could reach up to 23 in length
(23 >= 16 = 2^4)
in spiky distributions with high compression level.
In later versions, this flag is always true.
Introduced in 0.5.0.
delta_encoding_order: usize
How many times delta encoding was applied during compression.
This is stored as 3 bits to express 0-7
See CompressorConfig
for more details.
Introduced in 0.6.0.
use_min_count_encoding: bool
Whether to use the minimum number of bits to encode the count of each prefix, rather than using a constant number of bits. This can reduce file size slightly for small data. In later versions, this flag is always true. Introduced in 0.9.1.
Implementations
sourceimpl Flags
impl Flags
pub fn parse_from(reader: &mut BitReader<'_>) -> QCompressResult<Self>
pub fn write(&self, writer: &mut BitWriter) -> QCompressResult<()>
pub fn bits_to_encode_code_len(&self) -> usize
pub fn bits_to_encode_count(&self, n: usize) -> usize
Trait Implementations
sourceimpl From<&'_ CompressorConfig> for Flags
impl From<&'_ CompressorConfig> for Flags
sourcefn from(config: &CompressorConfig) -> Self
fn from(config: &CompressorConfig) -> Self
Converts to this type from the input type.
sourceimpl TryFrom<Vec<bool, Global>> for Flags
impl TryFrom<Vec<bool, Global>> for Flags
type Error = QCompressError
type Error = QCompressError
The type returned in the event of a conversion error.
sourcefn try_from(bools: Vec<bool>) -> QCompressResult<Self>
fn try_from(bools: Vec<bool>) -> QCompressResult<Self>
Performs the conversion.
sourceimpl TryInto<Vec<bool, Global>> for &Flags
impl TryInto<Vec<bool, Global>> for &Flags
type Error = QCompressError
type Error = QCompressError
The type returned in the event of a conversion error.
sourcefn try_into(self) -> QCompressResult<Vec<bool>>
fn try_into(self) -> QCompressResult<Vec<bool>>
Performs the conversion.
impl Eq for Flags
impl StructuralEq for Flags
impl StructuralPartialEq for Flags
Auto Trait Implementations
impl RefUnwindSafe for Flags
impl Send for Flags
impl Sync for Flags
impl Unpin for Flags
impl UnwindSafe for Flags
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more