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 heap_bytes(&self) -> usize
pub fn heap_bytes(&self) -> usize
Heap bytes owned by this dictionary: the content plus the parsed
entropy tables’ heap (the fixed-size FSE decode arrays are inline,
counted by size_of::<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.
Trait Implementations§
Source§impl AsRef<Dictionary> for DictionaryHandle
impl AsRef<Dictionary> for DictionaryHandle
Source§fn as_ref(&self) -> &Dictionary
fn as_ref(&self) -> &Dictionary
Source§impl Clone for Dictionary
impl Clone for Dictionary
Source§fn clone(&self) -> Dictionary
fn clone(&self) -> Dictionary
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more