pub struct FilterBuf<'a> { /* private fields */ }Expand description
Buffers and connection state adjacent to one FilterLayer.
For reads, the source is transport-facing and the destination is application-facing. For writes, the source is application-facing and the destination is transport-facing. Buffers are returned to the chain after each closure completes; empty read buffers may be returned to the configured cache.
Buffer access is not reentrant. A closure must not access an overlapping
buffer again through this object or its IoRef. Nested write access
panics; nested read access is unsupported and may terminate the connection
or lose nested buffer changes.
Implementations§
Source§impl FilterBuf<'_>
impl FilterBuf<'_>
Sourcepub fn with_read_src<F, R>(&self, f: F) -> R
pub fn with_read_src<F, R>(&self, f: F) -> R
Provides mutable access to the transport-facing read source.
The source is optional because no bytes may currently be allocated for this edge of the filter chain. Leaving an empty buffer in the option returns it to the configured cache.
The closure must not access this read source again.
Sourcepub fn with_read_buffers<F, R>(&self, f: F) -> R
pub fn with_read_buffers<F, R>(&self, f: F) -> R
Provides the transport-facing read source and application-facing destination.
Implementations normally consume bytes from src and append decoded or
transformed bytes to dst. Unconsumed source bytes are retained for the
next invocation.
The closure must not access either read buffer again.
Sourcepub fn with_write_buffers<F, R>(&self, f: F) -> R
pub fn with_write_buffers<F, R>(&self, f: F) -> R
Provides the application-facing write source and transport-facing destination.
Implementations normally consume bytes from src and append encoded or
transformed bytes to dst. Appending destination bytes marks the write
chain as needing transport progress.
§Panics
Panics if the closure accesses either write buffer again.