Skip to main content

FilterBuf

Struct FilterBuf 

Source
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<'_>

Source

pub fn io(&self) -> &IoRef

Gets a reference to the I/O object.

Source

pub fn tag(&self) -> &'static str

Gets the I/O tag.

Source

pub fn with_read_src<F, R>(&self, f: F) -> R
where F: FnOnce(&mut Option<BytesMut>) -> 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.

Source

pub fn with_read_buffers<F, R>(&self, f: F) -> R
where F: FnOnce(&mut Option<BytesMut>, &mut BytesMut) -> 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.

Source

pub fn with_write_buffers<F, R>(&self, f: F) -> R
where F: FnOnce(&mut BytePages, &mut BytePages) -> 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.

Trait Implementations§

Source§

impl<'a> Debug for FilterBuf<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !Freeze for FilterBuf<'a>

§

impl<'a> !RefUnwindSafe for FilterBuf<'a>

§

impl<'a> !Send for FilterBuf<'a>

§

impl<'a> !Sync for FilterBuf<'a>

§

impl<'a> !UnwindSafe for FilterBuf<'a>

§

impl<'a> Unpin for FilterBuf<'a>

§

impl<'a> UnsafeUnpin for FilterBuf<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.