Skip to main content

ResponseBuffer

Struct ResponseBuffer 

Source
pub struct ResponseBuffer<'buffer, 'sanitizer, S: ResponseStorageSanitizer + ?Sized> { /* private fields */ }
Expand description

Cleanup-owning admission guard around one sealed ResponseWriter.

The complete original storage is sanitized before admission and again when this guard is dropped, including bytes outside the admitted prefix.

Implementations§

Source§

impl<'buffer, 'sanitizer, S> ResponseBuffer<'buffer, 'sanitizer, S>

Source

pub fn new( storage: &'buffer mut [u8], max_body_bytes: usize, sanitizer: &'sanitizer S, ) -> Self

Admits at most max_body_bytes from caller storage and clears all supplied storage before transport use.

Source

pub const fn writer(&mut self) -> &mut ResponseWriter<'buffer>

Returns exclusive transport access to the admitted response prefix.

Source

pub fn with_response<R>( &self, inspect: impl for<'response> FnOnce(TransportResponse<'response>) -> R, ) -> Result<R, ResponseWriterError>

Inspects a committed response without allowing its body borrow to escape the closure.

Trait Implementations§

Source§

impl<S> Debug for ResponseBuffer<'_, '_, S>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<S> Drop for ResponseBuffer<'_, '_, S>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'buffer, 'sanitizer, S> !UnwindSafe for ResponseBuffer<'buffer, 'sanitizer, S>

§

impl<'buffer, 'sanitizer, S> Freeze for ResponseBuffer<'buffer, 'sanitizer, S>
where S: ?Sized,

§

impl<'buffer, 'sanitizer, S> RefUnwindSafe for ResponseBuffer<'buffer, 'sanitizer, S>
where S: RefUnwindSafe + ?Sized,

§

impl<'buffer, 'sanitizer, S> Send for ResponseBuffer<'buffer, 'sanitizer, S>
where S: Sync + ?Sized,

§

impl<'buffer, 'sanitizer, S> Sync for ResponseBuffer<'buffer, 'sanitizer, S>
where S: Sync + ?Sized,

§

impl<'buffer, 'sanitizer, S> Unpin for ResponseBuffer<'buffer, 'sanitizer, S>
where S: ?Sized,

§

impl<'buffer, 'sanitizer, S> UnsafeUnpin for ResponseBuffer<'buffer, 'sanitizer, S>
where S: ?Sized,

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.