Struct Request

Source
pub struct Request { /* private fields */ }
Expand description

Represents an HTTP request.

§Fields

  • method: The HTTP method of the request (e.g., GET, POST).
  • host: The host of the request (e.g., example.com).
  • path: The path of the request (e.g., /api/v1/resource).
  • query: The query string of the request (e.g., ?key=value).
  • headers: A collection of HTTP headers as key-value pairs.
  • body: The binary body of the request.

Implementations§

Source§

impl Request

Source

pub async fn from_reader( reader: &mut BufReader<&mut TcpStream>, ) -> Result<Request, Error>

Creates a new Request object from a TCP stream.

§Parameters
  • reader: A mut reference to a &mut BufReader<&mut TcpStream>
§Returns
  • Ok: A Request object populated with the HTTP request data.
  • Err: An Error if the request is invalid or cannot be read.
Source

pub async fn from_stream( stream: &Arc<RwLock<TcpStream>>, ) -> Result<Request, Error>

Creates a new Request object from a TCP stream.

§Parameters
  • stream: A reference to a &ArcRwLockStream representing the incoming connection.
§Returns
  • Ok: A Request object populated with the HTTP request data.
  • Err: An Error if the request is invalid or cannot be read.
Source

pub fn set_header<K, V>(&mut self, key: K, value: V) -> &mut Request
where K: Into<String>, V: Into<String>,

Adds a header to the request.

This function inserts a key-value pair into the request 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 a String.
  • value: The value of the header, which will be converted into a String.
§Returns
  • Returns a mutable reference to the current instance (&mut Self), allowing for method chaining.
Source

pub fn set_body<T>(&mut self, body: T) -> &mut Request
where T: Into<Vec<u8>>,

Set the body of the response.

This method allows you to set the body of the response by converting the provided value into a RequestBody 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 a RequestBody using the Into trait.
§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 RequestBody 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 a RequestBody using the Into trait.
§Return Value
  • Returns a mutable reference to the current instance of the struct, enabling method chaining.
Source

pub fn set_method<T>(&mut self, method: T) -> &mut Request
where T: Into<String>,

Set the HTTP method of the request.

This method allows you to set the HTTP method (e.g., GET, POST) of the request by converting the provided value into a RequestMethod type. The method is updated with the converted value, and the method returns a mutable reference to the current instance for method chaining.

§Parameters
  • method: The HTTP method to be set for the request. It can be any type that can be converted into a RequestMethod using the Into trait.
§Return Value
  • Returns a mutable reference to the current instance of the struct, enabling method chaining.
Source

pub fn set_host<T>(&mut self, host: T) -> &mut Request
where T: Into<String>,

Set the host of the request.

This method allows you to set the host (e.g., www.example.com) for the request by converting the provided value into a RequestHost type. The host is updated with the converted value, and the method returns a mutable reference to the current instance for method chaining.

§Parameters
  • host: The host to be set for the request. It can be any type that can be converted into a RequestHost using the Into trait.
§Return Value
  • Returns a mutable reference to the current instance of the struct, enabling method chaining.
Source

pub fn set_path<T>(&mut self, path: T) -> &mut Request
where T: Into<String>,

Set the path of the request.

This method allows you to set the path (e.g., /api/v1/resource) for the request by converting the provided value into a RequestPath type. The path is updated with the converted value, and the method returns a mutable reference to the current instance for method chaining.

§Parameters
  • path: The path to be set for the request. It can be any type that can be converted into a RequestPath using the Into trait.
§Return Value
  • Returns a mutable reference to the current instance of the struct, enabling method chaining.
Source

pub fn set_query<T>(&mut self, query: T) -> &mut Request
where T: Into<HashMap<String, String>>,

Set the query string of the request.

This method allows you to set the query string (e.g., ?key=value) for the request by converting the provided value into a RequestQuery type. The query is updated with the converted value, and the method returns a mutable reference to the current instance for method chaining.

§Parameters
  • query: The query string to be set for the request. It can be any type that can be converted into a RequestQuery using the Into trait.
§Return Value
  • Returns a mutable reference to the current instance of the struct, enabling method chaining.
Source§

impl Request

Source

pub fn get_method(&self) -> &String

Source

pub fn get_mut_method(&mut self) -> &mut String

Source

pub fn get_host(&self) -> &String

Source

pub fn get_mut_host(&mut self) -> &mut String

Source

pub fn get_path(&self) -> &String

Source

pub fn get_mut_path(&mut self) -> &mut String

Source

pub fn get_query(&self) -> &HashMap<String, String>

Source

pub fn get_mut_query(&mut self) -> &mut HashMap<String, String>

Source

pub fn get_headers(&self) -> &HashMap<String, String>

Source

pub fn get_mut_headers(&mut self) -> &mut HashMap<String, String>

Source

pub fn set_headers(&mut self, val: HashMap<String, String>) -> &mut Request

Source

pub fn get_body(&self) -> &Vec<u8>

Source

pub fn get_mut_body(&mut self) -> &mut Vec<u8>

Trait Implementations§

Source§

impl Clone for Request

Source§

fn clone(&self) -> Request

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Request

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for Request

Source§

fn default() -> Request

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Request

Source§

fn eq(&self, other: &Request) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Request

Source§

impl StructuralPartialEq for Request

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T