From 3b6403b8e73abbe54c6fb317a1f92a90281cb002 Mon Sep 17 00:00:00 2001 From: Moritz Borcherding Date: Fri, 31 Mar 2023 20:56:50 +0200 Subject: [PATCH] reenable forcing a different dict --- src/frame_decoder.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/frame_decoder.rs b/src/frame_decoder.rs index 7aeeb4b..18af6b3 100644 --- a/src/frame_decoder.rs +++ b/src/frame_decoder.rs @@ -209,6 +209,22 @@ impl FrameDecoder { Ok(()) } + pub fn force_dict(&mut self, dict_id: u32) -> Result<(), FrameDecoderError> { + use FrameDecoderError as err; + let Some(state) = self.state.as_mut() else { + return Err(err::NotYetInitialized); + }; + + let dict = self + .dicts + .get(&dict_id) + .ok_or(err::DictNotProvided { dict_id })?; + state.decoder_scratch.init_from_dict(dict); + state.using_dict = Some(dict_id); + + Ok(()) + } + /// Returns how many bytes the frame contains after decompression pub fn content_size(&self) -> u64 { match &self.state {