pub struct Response { /* private fields */ }Expand description
Represents an HTTP response.
§Fields
version: The HTTP version of the response (e.g., HTTP/1.1).status_code: The status code of the response (e.g., 200, 404).reason_phrase: The reason phrase corresponding to the status code (e.g., OK, Not Found).headers: A collection of HTTP headers as key-value pairs.body: The binary body of the response.response: The serialized HTTP response including headers and body.
Implementations§
Source§impl Response
impl Response
Sourcepub fn set_header<K, V>(&mut self, key: K, value: V) -> &mut Response
pub fn set_header<K, V>(&mut self, key: K, value: V) -> &mut Response
Adds a header to the response.
This function inserts a key-value pair into the response headers.
The key and value are converted into String, allowing for efficient handling of both owned and borrowed string data.
§Parameters
key: The header key, which will be converted into aString.value: The value of the header, which will be converted into aString.
§Returns
- Returns a mutable reference to the current instance (
&mut Self), allowing for method chaining.
Sourcepub fn set_body<T>(&mut self, body: T) -> &mut Response
pub fn set_body<T>(&mut self, body: T) -> &mut Response
Set the body of the response.
This method allows you to set the body of the response by converting the provided
value into a ResponseBody type. The body is updated with the converted value,
and the method returns a mutable reference to the current instance for method chaining.
§Parameters
body: The body of the response to be set. It can be any type that can be converted into aResponseBodyusing theIntotrait.
§Return Value
- Returns a mutable reference to the current instance of the struct, enabling method chaining. Set the body of the response.
This method allows you to set the body of the response by converting the provided
value into a ResponseBody type. The body is updated with the converted value,
and the method returns a mutable reference to the current instance for method chaining.
§Parameters
body: The body of the response to be set. It can be any type that can be converted into aResponseBodyusing theIntotrait.
§Return Value
- Returns a mutable reference to the current instance of the struct, enabling method chaining.
Sourcepub fn set_reason_phrase<T>(&mut self, reason_phrase: T) -> &mut Response
pub fn set_reason_phrase<T>(&mut self, reason_phrase: T) -> &mut Response
Set the reason phrase of the response.
This method allows you to set the reason phrase of the response by converting the
provided value into a ResponseReasonPhrase type. The reason_phrase is updated
with the converted value, and the method returns a mutable reference to the current
instance for method chaining.
§Parameters
reason_phrase: The reason phrase to be set for the response. It can be any type that can be converted into aResponseReasonPhraseusing theIntotrait.
§Return Value
- Returns a mutable reference to the current instance of the struct, enabling method chaining.
Sourcepub fn build(&mut self) -> Vec<u8> ⓘ
pub fn build(&mut self) -> Vec<u8> ⓘ
Builds the full HTTP response as a byte vector.
§Returns
- The serialized HTTP response including headers and body.
Sourcepub async fn send_body(
&mut self,
stream_lock: &Arc<RwLock<TcpStream>>,
) -> Result<(), Error>
pub async fn send_body( &mut self, stream_lock: &Arc<RwLock<TcpStream>>, ) -> Result<(), Error>
Sourcepub async fn close(
&mut self,
stream_lock: &Arc<RwLock<TcpStream>>,
) -> Result<(), Error>
pub async fn close( &mut self, stream_lock: &Arc<RwLock<TcpStream>>, ) -> Result<(), Error>
Closes the stream after sending the response.
This function is responsible for:
- Building the response using the
build()method. - Setting the response using the
set_response()method. - Shutting down the write half of the TCP stream to indicate no more data will be sent.
§Parameters
stream: A reference to theTcpStreamthat will be closed after sending the response.
§Returns
CloseStreamResult: The result of the operation, indicating whether the closure was successful or if an error occurred.