pub struct Request {
pub header: RequestHeader,
pub body: RequestBody,
pub auth: RequestAuth,
}Expand description
Representation of the request wire format.
Fields§
§header: RequestHeaderRequest header
body: RequestBodyRequest 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: RequestAuthAuth 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::ConnectionErroris returned. - if encoding any of the fields in the header fails,
ResponseStatus::InvalidEncodingis 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
ResponseStatuswill be returned. - if the request body size specified in the header is larger than the limit passed as
a parameter,
BodySizeExceedsLimitwill be returned.