#[non_exhaustive]pub enum FrameDecoderError {
Show 18 variants
ReadFrameHeaderError(ReadFrameHeaderError),
FrameHeaderError(FrameHeaderError),
WindowSizeTooBig {
requested: u64,
},
DictionaryDecodeError(DictionaryDecodeError),
FailedToReadBlockHeader(BlockHeaderReadError),
FailedToReadBlockBody(DecodeBlockContentError),
FailedToReadChecksum(Error),
NotYetInitialized,
FailedToInitialize(FrameHeaderError),
FailedToDrainDecodebuffer(Error),
FailedToSkipFrame,
TargetTooSmall,
FrameContentSizeMismatch {
declared: u64,
produced: u64,
},
DictNotProvided {
dict_id: u32,
},
DictIdMismatch {
expected: u32,
provided: u32,
},
DictAlreadyRegistered {
dict_id: u32,
},
UnexpectedDictId {
expected: Option<u32>,
found: Option<u32>,
},
UnexpectedWindowDescriptor {
expected: u8,
found: Option<u8>,
},
}Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ReadFrameHeaderError(ReadFrameHeaderError)
FrameHeaderError(FrameHeaderError)
WindowSizeTooBig
DictionaryDecodeError(DictionaryDecodeError)
FailedToReadBlockHeader(BlockHeaderReadError)
FailedToReadBlockBody(DecodeBlockContentError)
FailedToReadChecksum(Error)
NotYetInitialized
FailedToInitialize(FrameHeaderError)
FailedToDrainDecodebuffer(Error)
FailedToSkipFrame
TargetTooSmall
FrameContentSizeMismatch
Decoded block sizes don’t sum to the frame’s declared
frame_content_size (either a block claims to expand past
FCS, or the stream ends before reaching FCS). Indicates a
malformed or corrupt frame — distinct from
Self::TargetTooSmall (which is the caller’s
responsibility) so callers can tell decoder-side issues
apart from their own buffer sizing mistakes.
DictNotProvided
DictIdMismatch
DictAlreadyRegistered
UnexpectedDictId
lsm only.Frame header’s dict_id did not match the value pinned via
FrameDecoder::expect_dict_id. Returned BEFORE any block
decode and BEFORE any output is produced — no XXH64 init,
no partial output. Scratch buffer allocation / reservation
for the decode pipeline happens during frame-header parsing,
which is already complete when this validation fires, so
the cost of scratch sizing is paid even on a mismatched
header. expected is the pinned value (Some(0) is
treated as “no dictionary expected”, matching a frame whose
header omits the optional Dictionary_ID field); found
reports what the frame actually carried (None when the
header omits the field, Some(id) when it does not).
UnexpectedWindowDescriptor
lsm only.Frame header’s raw Window_Descriptor byte did not match
the value pinned via FrameDecoder::expect_window_descriptor.
Returned BEFORE any block decode work. Single-segment frames
(which omit the Window_Descriptor byte from the wire) are
reported via found: None so callers can distinguish
“wrong descriptor” from “no descriptor on the wire”.
Trait Implementations§
Source§impl Debug for FrameDecoderError
impl Debug for FrameDecoderError
Source§impl Display for FrameDecoderError
impl Display for FrameDecoderError
Source§impl Error for FrameDecoderError
Available on crate feature std only.
impl Error for FrameDecoderError
std only.Source§fn source(&self) -> Option<&(dyn StdError + 'static)>
fn source(&self) -> Option<&(dyn StdError + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()