# Struct httparse::Request [−] [src]

    pub struct Request<'headers, 'buf: 'headers> {
        pub method: Option<&'buf str>,
        pub path: Option<&'buf str>,
        pub version: Option<u8>,
        pub headers: &'headers mut [Header<'buf>],
    }

A parsed Request.

The optional values will be `None` if a parse was not complete, and did not parse the associated property. This allows you to inspect the parts that could be parsed, before reading more, in case you wish to exit early.

# Example

    let buf = b"GET /404 HTTP/1.1\r\nHost:";
    let mut headers = [httparse::EMPTY_HEADER; 16];
    let mut req = httparse::Request::new(&mut headers);
    let res = req.parse(buf).unwrap();
    if res.is_partial() {
        match req.path {
            Some(ref path) => {
                // check router for path.
                // /404 doesn't exist? we could stop parsing
            },
            None => {
                // must read more and parse again
            }
        }
    }

## Fields

`method: Option<&'buf str>`

The request method, such as `GET`.

`path: Option<&'buf str>`

The request path, such as `/about-us`.

`version: Option<u8>`

The request version, such as `HTTP/1.1`.

`headers: &'headers mut [Header<'buf>]`

The request headers.

## Implementations

### `impl<'h, 'b> Request<'h, 'b>` [src]

#### `pub fn new(headers: &'h mut [Header<'b>]) -> Request<'h, 'b>` [src]

Creates a new Request, using a slice of headers you allocate.

#### `pub fn parse(&mut self, buf: &'b [u8]) -> Result<usize>` [src]

Try to parse a buffer of bytes into the Request.

Returns byte offset in `buf` to start of HTTP body.

## Trait Implementations

### `impl<'headers, 'buf: 'headers> Debug for Request<'headers, 'buf>` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter. Read more

### `impl<'headers, 'buf: 'headers> Eq for Request<'headers, 'buf>` [src]

### `impl<'headers, 'buf: 'headers> PartialEq<Request<'headers, 'buf>> for Request<'headers, 'buf>` [src]

#### `fn eq(&self, other: &Request<'headers, 'buf>) -> bool` [src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `fn ne(&self, other: &Request<'headers, 'buf>) -> bool` [src]

This method tests for `!=`.

### `impl<'headers, 'buf: 'headers> StructuralEq for Request<'headers, 'buf>` [src]

### `impl<'headers, 'buf: 'headers> StructuralPartialEq for Request<'headers, 'buf>` [src]

## Auto Trait Implementations

### `impl<'headers, 'buf> RefUnwindSafe for Request<'headers, 'buf>`

### `impl<'headers, 'buf> Send for Request<'headers, 'buf>`

### `impl<'headers, 'buf> Sync for Request<'headers, 'buf>`

### `impl<'headers, 'buf> Unpin for Request<'headers, 'buf> where
'buf: 'headers,`

### `impl<'headers, 'buf> !UnwindSafe for Request<'headers, 'buf>`

## Blanket Implementations

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

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

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

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

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

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

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

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

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

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `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.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `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.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.