Struct httparse::ParserConfig [−][src]
pub struct ParserConfig { /* fields omitted */ }
Expand description
Parser configuration.
Implementations
Sets whether spaces should be allowed after header name.
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.
Whether multiple spaces are allowed as delimiters in request lines.
pub 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.
Whether multiple spaces are allowed as delimiters in response status lines.
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");
Whether obsolete multiline headers should be allowed.
Parses a request with the given config.
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>
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
Parses a response with the given config.
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>
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
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
Mutably borrows from an owned value. Read more