pub(crate) mod bits;
pub(crate) mod fse;
pub(crate) mod hist;
pub(crate) mod huf;
pub(crate) mod literals;
pub(crate) mod read;
pub(crate) mod sequences;
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
pub(crate) enum FseRepeat {
#[default]
None,
Check,
Valid,
}
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub(crate) struct HufTables {
pub(crate) table: huf::CTable,
pub(crate) repeat: huf::Repeat,
}
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub(crate) struct FseTables {
pub(crate) offcode: fse::CTable,
pub(crate) matchlength: fse::CTable,
pub(crate) litlength: fse::CTable,
pub(crate) offcode_repeat: FseRepeat,
pub(crate) matchlength_repeat: FseRepeat,
pub(crate) litlength_repeat: FseRepeat,
}
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub(crate) struct Tables {
pub(crate) huf: HufTables,
pub(crate) fse: FseTables,
}
impl Tables {
pub(crate) fn reset(&mut self) {
self.huf.repeat = huf::Repeat::None;
self.fse.offcode_repeat = FseRepeat::None;
self.fse.matchlength_repeat = FseRepeat::None;
self.fse.litlength_repeat = FseRepeat::None;
}
}