Skip to main content

MatchFinder

Struct MatchFinder 

Source
pub struct MatchFinder { /* private fields */ }
Expand description

LZ77 match finder using hash chains.

The match finder maintains a hash table and chain table that are indexed by position in a virtual address space where the dictionary is prepended to the actual data.

Implementations§

Source§

impl MatchFinder

Source

pub fn new(config: &LevelConfig) -> Self

Create a new match finder with the given level configuration.

Source

pub fn find_sequences( &mut self, data: &[u8], dict: &[u8], ) -> Result<Vec<Lz77Sequence>>

Find LZ77 sequences in the input data.

The optional dict slice acts as history prepended before data. Matches may reference bytes in the dictionary. The returned sequences cover exactly all bytes of data (not the dictionary).

§Errors

Returns an error if internal invariants are violated (should not happen in normal operation).

Source

pub fn reset(&mut self)

Reset the match finder for a new block.

Clears the hash and chain tables so no stale positions from previous blocks are referenced.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.