Struct highnoon::request::Request[][src]

pub struct Request<S: Sync + 'static> { /* fields omitted */ }

An incoming request

Implementations

impl<S: Send + Sync + 'static> Request<S>[src]

pub fn state(&self) -> &S[src]

Get a reference to the App's state

pub fn method(&self) -> &Method[src]

Get the HTTP method being used by this request

pub fn uri(&self) -> &Uri[src]

Get the URI that was used for this request

pub fn query<T: DeserializeOwned>(&self) -> Result<T>[src]

Parse the URI query string into an instance of T that derives Deserialize.

(To get the raw query string access it via req.uri().query()). If there is no query string, deserialize an empty string.

pub fn header<T: Header>(&self) -> Option<T>[src]

Get a typed header from the request (See also headers)

pub fn headers(&self) -> &HeaderMap<HeaderValue>[src]

Get all headers as a HeaderMap

pub fn param(&self, param: &str) -> Result<&str>[src]

Get a route parameter (eg. :key or *key segments in the URI path)

pub fn params(&self) -> &Params[src]

Get all route parameters

pub async fn body_mut(&mut self) -> Result<&mut Body>[src]

Get the request body as a hyper::Body

pub async fn reader(&mut self) -> Result<impl Read + '_>[src]

Get a reader to read the request body

(This does buffer the whole body into memory (not necessarily contiguous memory). If you need to protect against malicious clients you should access the body via body_mut

pub async fn body_bytes(&mut self) -> Result<Vec<u8>>[src]

Get the request body as raw bytes in a Vec<u8>

pub async fn body_string(&mut self) -> Result<String>[src]

Get the request body as UTF-8 data in String

pub async fn body_json<T: DeserializeOwned>(&mut self) -> Result<T>[src]

Get the request body as JSON and deserialise into T

pub fn remote_addr(&self) -> &SocketAddr[src]

Get the address of the remote peer.

This method uses the network level address only and hwnce may be incorrect if you are behind a proxy. (This does not check for any Forwarded headers etc...)

Auto Trait Implementations

impl<S> !RefUnwindSafe for Request<S>[src]

impl<S> Send for Request<S> where
    S: Send
[src]

impl<S> Sync for Request<S> where
    S: Send
[src]

impl<S> Unpin for Request<S>[src]

impl<S> !UnwindSafe for Request<S>[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,