pub struct Decoder { /* private fields */ }Expand description
Decodes a stream’s frame slices back into the original payloads. Hold one per stream; feed slices in frame order (each frame builds on the earlier ones).
Implementations§
Source§impl Decoder
impl Decoder
Sourcepub fn new() -> Self
pub fn new() -> Self
Start a fresh decoder with a cold window and the DEFAULT_MAX_FRAME_SIZE cap.
Sourcepub fn with_max_frame_size(max_frame_size: u64) -> Self
pub fn with_max_frame_size(max_frame_size: u64) -> Self
Start a fresh decoder with a cold window and a custom per-frame decompressed-size cap.
A malicious or buggy peer could send a tiny slice that inflates hugely, so frame
stops and returns Error::TooLarge once a single frame’s output would exceed max_frame_size.
Sourcepub fn frame(&mut self, slice: &[u8]) -> Result<Bytes>
pub fn frame(&mut self, slice: &[u8]) -> Result<Bytes>
Decompress the next frame’s slice back into its payload.
An empty slice yields an empty payload. Returns Error::TooLarge if the frame inflates past
the configured cap (checked as output is produced, not from any declared size), and
Error::Decompress on malformed input.