Skip to main content

bindle_file/
compress.rs

1/// Compression mode for entries.
2#[repr(C)]
3#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord)]
4pub enum Compress {
5    /// No compression.
6    None = 0,
7    /// Zstandard compression.
8    Zstd = 1,
9    /// Automatically compress if entry is larger than 2KB threshold.
10    /// Note: This is never stored on disk, only used as a policy hint.
11    #[default]
12    Auto = 2,
13}
14
15impl Compress {
16    pub(crate) fn from_u8(value: u8) -> Self {
17        match value {
18            0 => Compress::None,
19            1 => Compress::Zstd,
20            // Invalid/unknown values default to None (safest option)
21            // Auto is never stored on disk, only used as input policy
22            _ => Compress::None,
23        }
24    }
25}