pub struct Response {
pub header: ResponseHeader,
pub body: ResponseBody,
}
Expand description
Native representation of the response wire format.
Fields§
§header: ResponseHeader
Header of the response, containing the response status.
body: ResponseBody
Response body consists of an opaque vector of bytes. Interpretation of said bytes
is deferred to the a converter which can handle the content_type
defined in the
header.
Implementations§
Source§impl Response
impl Response
Sourcepub fn from_request_header(
header: RequestHeader,
status: ResponseStatus,
) -> Response
pub fn from_request_header( header: RequestHeader, status: ResponseStatus, ) -> Response
Convert request into an error response with a given ResponseStatus
.
The relevant fields in the header are preserved and an empty body is provided by default.
Sourcepub fn from_status(status: ResponseStatus) -> Response
pub fn from_status(status: ResponseStatus) -> Response
Create an empty response with a specific status.
Sourcepub fn write_to_stream(self, stream: &mut impl Write) -> Result<()>
pub fn write_to_stream(self, stream: &mut impl Write) -> Result<()>
Serialise response and write it to given stream.
Header is converted to a raw format before serializing.
§Errors
- if writing any of the subfields (header or body) fails, then
ResponseStatus::ConnectionError
is returned. - if encoding any of the fields in the header fails, then
ResponseStatus::InvalidEncoding
is returned.
Sourcepub fn read_from_stream(
stream: &mut impl Read,
body_len_limit: usize,
) -> Result<Response>
pub fn read_from_stream( stream: &mut impl Read, body_len_limit: usize, ) -> Result<Response>
Deserialise response from given stream.
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 or body) 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.