Struct IncomingRequest

Source
pub struct IncomingRequest { /* private fields */ }
Expand description

Represents an incoming HTTP request.

If you don’t need streaming access to the request body, you may find it easier to work with Request instead. To make outgoing requests, use Request (non-streaming) or OutgoingRequest.

§Examples

Access the request body as a Rust stream:

async fn handle_request(req: IncomingRequest, response_outparam: ResponseOutparam) {
    use futures::stream::StreamExt;

    let mut stream = req.into_body_stream();
    loop {
        let chunk = stream.next().await;
        match chunk {
            None => {
                println!("end of request body");
                break;
            }
            Some(Ok(chunk)) => {
                // process the data from the stream in a very realistic way
                println!("read {} bytes", chunk.len());
            }
            Some(Err(e)) => {
                println!("error reading body: {e:?}");
                break;
            }
        }
    }
}

Access the body in a non-streaming way. This can be useful where your component must take IncomingRequest because some scenarios need streaming, but you have other scenarios that do not.

async fn handle_request(req: IncomingRequest, response_outparam: ResponseOutparam) {
    let body = req.into_body().await.unwrap();
}

Represents an incoming HTTP Request.

Implementations§

Source§

impl IncomingRequest

Source

pub fn method(&self) -> Method

Returns the method of the incoming request.

Source§

impl IncomingRequest

Source

pub fn path_with_query(&self) -> Option<String>

Returns the path with query parameters from the request, as a string.

Source§

impl IncomingRequest

Source

pub fn scheme(&self) -> Option<Scheme>

Returns the protocol scheme from the request.

Source§

impl IncomingRequest

Source

pub fn authority(&self) -> Option<String>

Returns the authority from the request, if it was present.

Source§

impl IncomingRequest

Source

pub fn headers(&self) -> Headers

Get the headers associated with the request.

The returned headers resource is immutable: set, append, and delete operations will fail with header-error.immutable.

The headers returned are a child resource: it must be dropped before the parent incoming-request is dropped. Dropping this incoming-request before all children are dropped will trap.

Source§

impl IncomingRequest

Source

pub fn consume(&self) -> Result<IncomingBody, ()>

Gives the incoming-body associated with this request. Will only return success at most once, and subsequent calls will return error.

Source§

impl IncomingRequest

Source

pub fn uri(&self) -> String

The incoming request Uri

Source

pub fn into_body_stream(self) -> impl Stream<Item = Result<Vec<u8>, Error>>

Return a Stream from which the body of the specified request may be read.

§Panics

Panics if the body was already consumed.

Source

pub async fn into_body(self) -> Result<Vec<u8>, Error>

Return a Vec<u8> of the body or fails

Trait Implementations§

Source§

impl Debug for IncomingRequest

Source§

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

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

impl TryFromIncomingRequest for IncomingRequest

Source§

type Error = Infallible

The error if conversion fails
Source§

fn try_from_incoming_request<'async_trait>( request: IncomingRequest, ) -> Pin<Box<dyn Future<Output = Result<Self, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait,

Try to turn the IncomingRequest into the implementing type
Source§

impl WasmResource for IncomingRequest

Source§

unsafe fn drop(_handle: u32)

Invokes the [resource-drop]... intrinsic.

Auto Trait Implementations§

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.