Skip to main content

StreamParts

Struct StreamParts 

Source
pub struct StreamParts<'a> {
    pub window: &'a mut i32,
    pub rbuffer: &'a mut Kawa<Checkout>,
    pub wbuffer: &'a mut Kawa<Checkout>,
    pub received_end_of_stream: &'a mut bool,
    pub data_received: &'a mut usize,
    pub context: &'a mut HttpContext,
    pub metrics: &'a mut SessionMetrics,
    pub retry_buffer: &'a mut Option<ReplayCapture>,
    pub front_bound_to_backend: &'a mut bool,
}
Expand description

This struct allows to mutably borrow the read and write buffers (dependant on the position) as well as the context and metrics of a Stream at the same time

Fields§

§window: &'a mut i32

This connection’s send window for the stream: Stream::back_window on a backend connection, Stream::front_window on a frontend one.

§rbuffer: &'a mut Kawa<Checkout>§wbuffer: &'a mut Kawa<Checkout>§received_end_of_stream: &'a mut bool

Tracks whether end_of_stream has been received on the read side of this connection.

§data_received: &'a mut usize

Tracks total DATA payload bytes received on the read side (for content-length validation).

§context: &'a mut HttpContext§metrics: &'a mut SessionMetrics§retry_buffer: &'a mut Option<ReplayCapture>

Stream::retry_buffer, reachable from the write path so the H1 client can record the exact bytes it hands the upstream socket before kawa::Kawa::consume drops them from the front buffer.

§front_bound_to_backend: &'a mut bool

Stream::front_bound_to_backend, set by the H2 write path when a backend connection encodes the request.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

impl<'a> Freeze for StreamParts<'a>

§

impl<'a> Unpin for StreamParts<'a>

§

impl<'a> UnsafeUnpin for StreamParts<'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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.