pub struct SecureDecompressionContext { /* private fields */ }Expand description
Secure decompression context for streaming operations.
Implementations§
Source§impl SecureDecompressionContext
impl SecureDecompressionContext
Sourcepub fn new(
detector: CompressionBombDetector,
max_concurrent_streams: usize,
) -> Self
pub fn new( detector: CompressionBombDetector, max_concurrent_streams: usize, ) -> Self
Create new secure decompression context.
Sourcepub fn start_stream(
&mut self,
compressed_size: usize,
) -> Result<CompressionBombProtector<Cursor<Vec<u8>>>>
pub fn start_stream( &mut self, compressed_size: usize, ) -> Result<CompressionBombProtector<Cursor<Vec<u8>>>>
Start a new protected decompression stream.
Returns an error if the concurrent stream limit would be exceeded.
§Note
The returned CompressionBombProtector wraps an empty in-memory cursor. Callers are
responsible for writing compressed bytes into the underlying buffer before reading. This API
is a concurrency-limit scaffold; true streaming wire integration is left for a future PR.
Sourcepub fn finish_stream(&mut self)
pub fn finish_stream(&mut self)
Finish a decompression stream and decrement the active count.
Sourcepub fn stats(&self) -> DecompressionContextStats
pub fn stats(&self) -> DecompressionContextStats
Get current context statistics.
Auto Trait Implementations§
impl Freeze for SecureDecompressionContext
impl RefUnwindSafe for SecureDecompressionContext
impl Send for SecureDecompressionContext
impl Sync for SecureDecompressionContext
impl Unpin for SecureDecompressionContext
impl UnsafeUnpin for SecureDecompressionContext
impl UnwindSafe for SecureDecompressionContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more