1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//! CRAM block content codecs.

pub mod aac;
pub(crate) mod bzip2;
pub(crate) mod fqzcomp;
pub(crate) mod gzip;
pub(crate) mod lzma;
pub(crate) mod name_tokenizer;
pub mod rans_4x8;
pub mod rans_nx16;

/// A CRAM block content encoder.
#[derive(Clone, Debug)]
pub enum Encoder {
    /// gzip
    Gzip(flate2::Compression),
    /// bzip2
    Bzip2(::bzip2::Compression),
    /// xz
    Lzma(u32),
    /// rANS 4x8
    Rans4x8(rans_4x8::Order),
    /// rANS Nx16
    RansNx16(rans_nx16::Flags),
    /// adaptive arithmetic coder
    AdaptiveArithmeticCoding(aac::Flags),
    /// name tokenizer
    NameTokenizer,
    /// fqzcomp
    Fqzcomp,
}