use androscalpel_serializer::Serializable;

#[derive(Serializable, Clone, Copy, PartialEq, Eq, Debug)]
#[prefix_type(u16)]
pub enum CompressionMethod {
    #[prefix(0)]
    Stored,
    #[prefix(1)]
    Shrunk,
    #[prefix(2)]
    ReducedF1,
    #[prefix(3)]
    ReducedF2,
    #[prefix(4)]
    ReducedF3,
    #[prefix(5)]
    ReducedF4,
    #[prefix(6)]
    Imploded,
    #[prefix(7)]
    ReservedTokenizing,
    #[prefix(8)]
    Deflated,
    #[prefix(9)]
    Deflate64,
    #[prefix(10)]
    PKWAREImploding,
    #[prefix(11)]
    Reserved1,
    #[prefix(12)]
    BZIP2,
    #[prefix(13)]
    Reserved2,
    #[prefix(14)]
    LZMA,
    #[prefix(15)]
    Reserved3,
    #[prefix(16)]
    CMPSC,
    #[prefix(17)]
    Reserved4,
    #[prefix(18)]
    TERSE,
    #[prefix(19)]
    LZ77,
    #[prefix(20)]
    Zstandard93,
    #[prefix(93)]
    Zstandard,
    #[prefix(94)]
    MP3,
    #[prefix(95)]
    XZ,
    #[prefix(96)]
    JPEG,
    #[prefix(97)]
    WavPack,
    #[prefix(98)]
    PPMdI1,
    #[prefix(99)]
    AEx,
    #[default_variant]
    Unknown(u16),
}
