Skip to main content

Dictionary

Struct Dictionary 

Source
pub struct Dictionary {
    pub id: u32,
    pub fse: FSEScratch,
    pub huf: HuffmanScratch,
    pub dict_content: Vec<u8>,
    pub offset_hist: [u32; 3],
}
Expand description

Zstandard includes support for “raw content” dictionaries, that store bytes optionally used during sequence execution.

https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format

Fields§

§id: u32

A 4 byte value used by decoders to check if they can use the correct dictionary. This value must not be zero.

§fse: FSEScratch

A dictionary can contain an entropy table, either FSE or Huffman.

§huf: HuffmanScratch

A dictionary can contain an entropy table, either FSE or Huffman.

§dict_content: Vec<u8>

The content of a dictionary acts as a “past” in front of data to compress or decompress, so it can be referenced in sequence commands. As long as the amount of data decoded from this frame is less than or equal to Window_Size, sequence commands may specify offsets longer than the total length of decoded output so far to reference back to the dictionary, even parts of the dictionary with offsets larger than Window_Size. After the total output has surpassed Window_Size however, this is no longer allowed and the dictionary is no longer accessible

§offset_hist: [u32; 3]

The 3 most recent offsets are stored so that they can be used during sequence execution, see https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#repeat-offsets for more.

Implementations§

Source§

impl Dictionary

Source

pub fn from_raw_content( id: u32, dict_content: Vec<u8>, ) -> Result<Dictionary, DictionaryDecodeError>

Build a dictionary from raw content bytes (without entropy table sections).

This is primarily intended for dictionaries produced by the dict_builder module, which currently emits raw-content dictionaries.

Source

pub fn decode_dict(raw: &[u8]) -> Result<Dictionary, DictionaryDecodeError>

Parses the dictionary from raw, initializes its tables, and returns a fully constructed Dictionary whose id can be checked against the frame’s dict_id.

Source

pub fn into_handle(self) -> DictionaryHandle

Convert this parsed dictionary into a reusable shared handle.

Trait Implementations§

Source§

impl AsRef<Dictionary> for DictionaryHandle

Source§

fn as_ref(&self) -> &Dictionary

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl From<Dictionary> for DictionaryHandle

Source§

fn from(dict: Dictionary) -> Self

Converts to this type from the input type.

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.