pub trait IRInterpreter {
// Required methods
fn inc_local_byte_offset(&mut self, inc: usize);
fn local_byte_offset(&self) -> usize;
fn update_block_type(&mut self, new_type: u8, new_stride: u8);
fn block_type(&self) -> u8;
fn literal_data_at_offset(&self, index: usize) -> u8;
fn literal_context_map(&self) -> &[u8] ⓘ;
fn prediction_mode(&self) -> LiteralPredictionModeNibble;
fn update_cost(
&mut self,
stride_prior: [u8; 8],
stride_byte_offset: usize,
selected_bits: u8,
cm_prior: usize,
literal: u8,
);
}