Struct httparse::ParserConfig
source · [−]pub struct ParserConfig { /* private fields */ }
Expand description
Parser configuration.
Implementations
sourceimpl ParserConfig
impl ParserConfig
sourcepub fn allow_spaces_after_header_name_in_responses(
&mut self,
value: bool
) -> &mut Self
pub fn allow_spaces_after_header_name_in_responses(
&mut self,
value: bool
) -> &mut Self
Sets whether spaces should be allowed after header name.
sourcepub fn allow_multiple_spaces_in_request_line_delimiters(
&mut self,
value: bool
) -> &mut Self
pub fn allow_multiple_spaces_in_request_line_delimiters(
&mut self,
value: bool
) -> &mut Self
Sets whether multiple spaces are allowed as delimiters in request lines.
Background
The latest version of the HTTP/1.1 spec allows implementations to parse multiple
whitespace characters in place of the SP
delimiters in the request line, including:
SP, HTAB, VT (%x0B), FF (%x0C), or bare CR
This option relaxes the parser to allow for multiple spaces, but does not allow the request line to contain the other mentioned whitespace characters.
sourcepub fn multiple_spaces_in_request_line_delimiters_are_allowed(&self) -> bool
pub fn multiple_spaces_in_request_line_delimiters_are_allowed(&self) -> bool
Whether multiple spaces are allowed as delimiters in request lines.
sourcepub fn allow_multiple_spaces_in_response_status_delimiters(
&mut self,
value: bool
) -> &mut Self
pub fn allow_multiple_spaces_in_response_status_delimiters(
&mut self,
value: bool
) -> &mut Self
Sets whether multiple spaces are allowed as delimiters in response status lines.
Background
The latest version of the HTTP/1.1 spec allows implementations to parse multiple
whitespace characters in place of the SP
delimiters in the response status line,
including:
SP, HTAB, VT (%x0B), FF (%x0C), or bare CR
This option relaxes the parser to allow for multiple spaces, but does not allow the status line to contain the other mentioned whitespace characters.
sourcepub fn multiple_spaces_in_response_status_delimiters_are_allowed(&self) -> bool
pub fn multiple_spaces_in_response_status_delimiters_are_allowed(&self) -> bool
Whether multiple spaces are allowed as delimiters in response status lines.
sourcepub fn allow_obsolete_multiline_headers_in_responses(
&mut self,
value: bool
) -> &mut Self
pub fn allow_obsolete_multiline_headers_in_responses(
&mut self,
value: bool
) -> &mut Self
Sets whether obsolete multiline headers should be allowed.
This is an obsolete part of HTTP/1. Use at your own risk. If you are
building an HTTP library, the newlines (\r
and \n
) should be
replaced by spaces before handing the header value to the user.
Example
let buf = b"HTTP/1.1 200 OK\r\nFolded-Header: hello\r\n there \r\n\r\n";
let mut headers = [httparse::EMPTY_HEADER; 16];
let mut response = httparse::Response::new(&mut headers);
let res = httparse::ParserConfig::default()
.allow_obsolete_multiline_headers_in_responses(true)
.parse_response(&mut response, buf);
assert_eq!(res, Ok(httparse::Status::Complete(buf.len())));
assert_eq!(response.headers.len(), 1);
assert_eq!(response.headers[0].name, "Folded-Header");
assert_eq!(response.headers[0].value, b"hello\r\n there");
sourcepub fn obsolete_multiline_headers_in_responses_are_allowed(&self) -> bool
pub fn obsolete_multiline_headers_in_responses_are_allowed(&self) -> bool
Whether obsolete multiline headers should be allowed.
sourcepub fn parse_request<'headers, 'buf>(
&self,
request: &mut Request<'headers, 'buf>,
buf: &'buf [u8]
) -> Result<usize>
pub fn parse_request<'headers, 'buf>(
&self,
request: &mut Request<'headers, 'buf>,
buf: &'buf [u8]
) -> Result<usize>
Parses a request with the given config.
sourcepub fn parse_request_with_uninit_headers<'headers, 'buf>(
&self,
request: &mut Request<'headers, 'buf>,
buf: &'buf [u8],
headers: &'headers mut [MaybeUninit<Header<'buf>>]
) -> Result<usize>
pub fn parse_request_with_uninit_headers<'headers, 'buf>(
&self,
request: &mut Request<'headers, 'buf>,
buf: &'buf [u8],
headers: &'headers mut [MaybeUninit<Header<'buf>>]
) -> Result<usize>
Parses a request with the given config and buffer for headers
sourcepub fn parse_response<'headers, 'buf>(
&self,
response: &mut Response<'headers, 'buf>,
buf: &'buf [u8]
) -> Result<usize>
pub fn parse_response<'headers, 'buf>(
&self,
response: &mut Response<'headers, 'buf>,
buf: &'buf [u8]
) -> Result<usize>
Parses a response with the given config.
sourcepub fn parse_response_with_uninit_headers<'headers, 'buf>(
&self,
response: &mut Response<'headers, 'buf>,
buf: &'buf [u8],
headers: &'headers mut [MaybeUninit<Header<'buf>>]
) -> Result<usize>
pub fn parse_response_with_uninit_headers<'headers, 'buf>(
&self,
response: &mut Response<'headers, 'buf>,
buf: &'buf [u8],
headers: &'headers mut [MaybeUninit<Header<'buf>>]
) -> Result<usize>
Parses a response with the given config and buffer for headers
Trait Implementations
sourceimpl Clone for ParserConfig
impl Clone for ParserConfig
sourcefn clone(&self) -> ParserConfig
fn clone(&self) -> ParserConfig
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for ParserConfig
impl Debug for ParserConfig
sourceimpl Default for ParserConfig
impl Default for ParserConfig
sourcefn default() -> ParserConfig
fn default() -> ParserConfig
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for ParserConfig
impl Send for ParserConfig
impl Sync for ParserConfig
impl Unpin for ParserConfig
impl UnwindSafe for ParserConfig
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more