Skip to main content

Body

Struct Body 

Source
pub struct Body<E> { /* private fields */ }
Expand description

Extracts cache key parts from request bodies.

Supports hash, jq (JSON), and regex extraction modes. Chain with other extractors using the builder pattern.

§Caveats

The entire body is buffered into memory during extraction. The body is returned as BufferedBody::Complete after extraction.

Implementations§

Source§

impl<S> Body<NeutralExtractor<S>>

Source

pub fn new(extraction: BodyExtraction) -> Self

Creates a body extractor with the given extraction mode.

Trait Implementations§

Source§

impl<E: Debug> Debug for Body<E>

Source§

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

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

impl<ReqBody, E> Extractor for Body<E>
where ReqBody: HttpBody + Send + 'static, ReqBody::Error: Send, ReqBody::Data: Send, E: Extractor<Subject = CacheableHttpRequest<ReqBody>> + Send + Sync,

Source§

type Subject = <E as Extractor>::Subject

The type from which cache key components are extracted.
Source§

fn get<'life0, 'async_trait>( &'life0 self, subject: Self::Subject, ) -> Pin<Box<dyn Future<Output = KeyParts<Self::Subject>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Extract cache key components from the subject. Read more

Auto Trait Implementations§

§

impl<E> Freeze for Body<E>
where E: Freeze,

§

impl<E> RefUnwindSafe for Body<E>
where E: RefUnwindSafe,

§

impl<E> Send for Body<E>
where E: Send,

§

impl<E> Sync for Body<E>
where E: Sync,

§

impl<E> Unpin for Body<E>
where E: Unpin,

§

impl<E> UnwindSafe for Body<E>
where E: UnwindSafe,

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<E> BodyExtractor for E
where E: Extractor,

Source§

fn body(self, extraction: BodyExtraction) -> Body<E>

Adds body extraction with the specified mode.
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<E> HeaderExtractor for E
where E: Extractor,

Source§

fn header(self, name: String) -> Header<E>

Adds extraction for a single header by exact name.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<E> MethodExtractor for E
where E: Extractor,

Source§

fn method(self) -> Method<E>

Adds HTTP method extraction to the chain.
Source§

impl<E> PathExtractor for E
where E: Extractor,

Source§

fn path(self, resource: &str) -> Path<E>

Adds path parameter extraction with the given pattern. Read more
Source§

impl<E> QueryExtractor for E
where E: Extractor,

Source§

fn query(self, name: String) -> Query<E>

Adds extraction for a single query parameter by name.
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 = 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.
Source§

impl<E> VersionExtractor for E
where E: Extractor,

Source§

fn version(self) -> Version<E>

Adds HTTP version extraction to this extractor chain.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more