pub struct Request<'headers, 'buf> {
pub method: Option<&'buf str>,
pub path: Option<&'buf str>,
pub version: Option<u8>,
pub headers: &'headers mut [Header<'buf>],
}
Expand description
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 minor version, such as 1
for HTTP/1.1
.
headers: &'headers mut [Header<'buf>]
The request headers.
Implementations§
Source§impl<'h, 'b> Request<'h, 'b>
impl<'h, 'b> Request<'h, 'b>
Sourcepub fn new(headers: &'h mut [Header<'b>]) -> Request<'h, 'b>
pub fn new(headers: &'h mut [Header<'b>]) -> Request<'h, 'b>
Creates a new Request, using a slice of headers you allocate.
Sourcepub fn parse_with_uninit_headers(
&mut self,
buf: &'b [u8],
headers: &'h mut [MaybeUninit<Header<'b>>],
) -> Result<usize>
pub fn parse_with_uninit_headers( &mut self, buf: &'b [u8], headers: &'h mut [MaybeUninit<Header<'b>>], ) -> Result<usize>
Try to parse a buffer of bytes into the Request,
except use an uninitialized slice of Header
s.
For more information, see parse
Trait Implementations§
impl<'headers, 'buf> Eq for Request<'headers, 'buf>
impl<'headers, 'buf> StructuralPartialEq for Request<'headers, 'buf>
Auto Trait Implementations§
impl<'headers, 'buf> Freeze for Request<'headers, 'buf>
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>
impl<'headers, 'buf> !UnwindSafe for Request<'headers, 'buf>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 56 bytes