pub struct Request {
pub header: RequestHeader,
pub body: RequestBody,
pub auth: RequestAuth,
}
Expand description
Representation of the request wire format.
Fields§
§header: RequestHeader
Request header
body: RequestBody
Request body consists of RequestBody
object holding a collection of bytes.
Interpretation of said bytes is deferred to the a converter which can handle the
content_type
defined in the header.
auth: RequestAuth
Auth field is stored as a RequestAuth
object. A parser that can handle the auth_type
specified in the header is needed to authenticate the request.
Implementations§
Source§impl Request
impl Request
Sourcepub fn write_to_stream(self, stream: &mut impl Write) -> Result<()>
pub fn write_to_stream(self, stream: &mut impl Write) -> Result<()>
Serialise request and write it to given stream.
Request header is first converted to its raw format before serialization.
§Errors
- if an IO operation fails while writing any of the subfields of the request,
ResponseStatus::ConnectionError
is returned. - if encoding any of the fields in the header fails,
ResponseStatus::InvalidEncoding
is returned.
Sourcepub fn read_from_stream(
stream: &mut impl Read,
body_len_limit: usize,
) -> Result<Request>
pub fn read_from_stream( stream: &mut impl Read, body_len_limit: usize, ) -> Result<Request>
Deserialise request from given stream.
Request header is parsed from its raw form, ensuring that all fields are valid.
The body_len_limit
parameter allows the interface client to reject requests that are
longer than a predefined limit. The length limit is in bytes.
§Errors
- if reading any of the subfields (header, body or auth) fails, the corresponding
ResponseStatus
will be returned. - if the request body size specified in the header is larger than the limit passed as
a parameter,
BodySizeExceedsLimit
will be returned.