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

pub struct Request<S: State> { /* fields omitted */ }

An incoming request

Implementations

impl<S: State> Request<S>[src]

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

Get a reference to the App's state

pub fn context(&self) -> &S::Context[src]

Get a reference to the request's context

pub fn context_mut(&mut self) -> &mut S::Context[src]

Get a mut reference to the request's context

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 cookies(&self) -> Result<CookieJar>[src]

Get the request's cookies

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

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

If the parameter is not present, logs an error and returns a 400 Bad Request to the client

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, but 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 deserialize into T.

If deserialization fails, log an error and return 400 Bad Request. (If this logic is not appropriate, consider using reader and using serde_json directly)

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

Get the address of the remote peer.

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

Trait Implementations

impl<S> HasSession for Request<S> where
    S: State,
    S::Context: HasSession
[src]

Implement HasSession on requests where the Context has sessions

Auto Trait Implementations

impl<S> !RefUnwindSafe for Request<S>

impl<S> Send for Request<S>

impl<S> Sync for Request<S>

impl<S> Unpin for Request<S> where
    <S as State>::Context: Unpin

impl<S> !UnwindSafe for Request<S>

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>,