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: u32A 4 byte value used by decoders to check if they can use the correct dictionary. This value must not be zero.
fse: FSEScratchA dictionary can contain an entropy table, either FSE or Huffman.
huf: HuffmanScratchA 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
impl Dictionary
Sourcepub fn from_raw_content(
id: u32,
dict_content: Vec<u8>,
) -> Result<Dictionary, DictionaryDecodeError>
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.
Sourcepub fn decode_dict(raw: &[u8]) -> Result<Dictionary, DictionaryDecodeError>
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.
Sourcepub fn into_handle(self) -> DictionaryHandle
pub fn into_handle(self) -> DictionaryHandle
Convert this parsed dictionary into a reusable shared handle.