pub const NUM_CHARS: usize = 256;
pub const NUM_PRIMARY_LENGTHS: u16 = 7;
pub const NUM_SECONDARY_LENGTHS: usize = 249;
pub const MIN_MATCH: u16 = 2;
#[allow(dead_code)]
pub const MAX_MATCH: u16 = 257;
pub const PRETREE_NUM_ELEMENTS: usize = 20;
pub const ALIGNED_NUM_ELEMENTS: usize = 8;
pub const FRAME_SIZE: usize = 32_768;
pub const MIN_WINDOW_BITS: u8 = 15;
pub const MAX_WINDOW_BITS: u8 = 21;
pub const BLOCKTYPE_VERBATIM: u8 = 1;
pub const BLOCKTYPE_ALIGNED: u8 = 2;
pub const BLOCKTYPE_UNCOMPRESSED: u8 = 3;
pub const POSITION_SLOTS: [u16; 7] = [30, 32, 34, 36, 38, 42, 50];
pub const EXTRA_BITS: [u8; 51] = [
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13,
13, 14, 14, 15, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
];
pub const POSITION_BASE: [u32; 51] = [
0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536,
2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576, 32768, 49152, 65536, 98304, 131072, 196608,
262144, 393216, 524288, 655360, 786432, 917504, 1048576, 1179648, 1310720, 1441792, 1572864,
1703936, 1835008, 1966080, 2097152,
];
pub const fn position_slots_for(window_bits: u8) -> u16 {
POSITION_SLOTS[(window_bits - MIN_WINDOW_BITS) as usize]
}
pub const fn main_tree_size(window_bits: u8) -> usize {
NUM_CHARS + (position_slots_for(window_bits) as usize) * 8
}
pub const MAIN_TREE_MAX: usize = NUM_CHARS + (50 * 8);