Struct Payload

Source
pub struct Payload(pub Payload);
Expand description

Payload extractor returns request ’s payload stream.

§Example

use std::future::Future;
use ntex::util::{BytesMut, Stream};
use ntex::web::{self, error, App, HttpResponse};

/// extract binary data from request
async fn index(mut body: web::types::Payload) -> Result<HttpResponse, error::PayloadError>
{
    let mut bytes = BytesMut::new();
    while let Some(item) = ntex::util::stream_recv(&mut body).await {
        bytes.extend_from_slice(&item?);
    }

    format!("Body {:?}!", bytes);
    Ok(HttpResponse::Ok().finish())
}

fn main() {
    let app = App::new().service(
        web::resource("/index.html").route(
            web::get().to(index))
    );
}

Tuple Fields§

§0: Payload

Implementations§

Source§

impl Payload

Source

pub fn into_inner(self) -> Payload

Deconstruct to a inner value

Source

pub async fn recv(&mut self) -> Option<Result<Bytes, PayloadError>>

Attempt to pull out the next value of this payload.

Source

pub fn poll_recv( &mut self, cx: &mut Context<'_>, ) -> Poll<Option<Result<Bytes, PayloadError>>>

Attempt to pull out the next value of this payload, registering the current task for wakeup if the value is not yet available, and returning None if the payload is exhausted.

Trait Implementations§

Source§

impl Debug for Payload

Source§

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

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

impl<Err: ErrorRenderer> FromRequest<Err> for Payload

Get request’s payload stream

§Example
use std::future::Future;
use ntex::util::{BytesMut, Stream};
use ntex::web::{self, error, App, Error, HttpResponse};

/// extract binary data from request
async fn index(mut body: web::types::Payload) -> Result<HttpResponse, error::PayloadError>
{
    let mut bytes = BytesMut::new();
    while let Some(item) = ntex::util::stream_recv(&mut body).await {
        bytes.extend_from_slice(&item?);
    }

    format!("Body {:?}!", bytes);
    Ok(HttpResponse::Ok().finish())
}

fn main() {
    let app = App::new().service(
        web::resource("/index.html").route(
            web::get().to(index))
    );
}
Source§

type Error = <Err as ErrorRenderer>::Container

The associated error which can be returned.
Source§

async fn from_request( _: &HttpRequest, payload: &mut Payload, ) -> Result<Payload, Self::Error>

Convert request to a Self
Source§

impl Stream for Payload

Source§

type Item = Result<Bytes, PayloadError>

Values yielded by the stream.
Source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
Source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations§

§

impl Freeze for Payload

§

impl !RefUnwindSafe for Payload

§

impl !Send for Payload

§

impl !Sync for Payload

§

impl Unpin for Payload

§

impl !UnwindSafe for Payload

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> 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<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<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

Source§

type Ok = T

The type of successful values yielded by this future
Source§

type Error = E

The type of failures yielded by this future
Source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_>, ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more
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