ArcRwLockStream

Struct ArcRwLockStream 

Source
pub struct ArcRwLockStream(/* private fields */);
Expand description

Thread-safe TCP stream wrapper.

Provides shared access to a TcpStream using Arc and RwLock.

§Fields

  • Arc<RwLock<TcpStream>> - The protected TCP stream.

Implementations§

Source§

impl ArcRwLockStream

Source

pub fn from(arc_rw_lock_stream: ArcRwLock<TcpStream>) -> Self

Creates a new ArcRwLockStream from an Arc<RwLock>.

§Arguments
  • Arc<RwLock<TcpStream>> - The stream to wrap.
§Returns
  • ArcRwLockStream - The new stream wrapper.
Source

pub fn from_stream(stream: TcpStream) -> Self

Creates a new ArcRwLockStream from a TcpStream.

Wraps the stream in an Arc<RwLock<_>>.

§Arguments
  • TcpStream - The raw stream to wrap.
§Returns
  • ArcRwLockStream - The new thread-safe stream wrapper.
Source

pub async fn read(&self) -> RwLockReadGuard<'_, TcpStream>

Gets a read lock on the inner TcpStream.

Allows shared read access to the stream.

§Returns
  • RwLockReadGuardTcpStream - The read guard for the stream.
Source

pub async fn try_send<D>(&self, data: D) -> Result<(), ResponseError>
where D: AsRef<[u8]>,

Sends HTTP response data over the stream.

§Arguments
  • AsRef<[u8]> - The response data to send (must implement AsRef<u8>).
§Returns
  • Result<(), ResponseError> - Result indicating success or failure.
Source

pub async fn send<D>(&self, data: D)
where D: AsRef<[u8]>,

Sends HTTP response data over the stream.

§Arguments
  • AsRef<[u8]> - The response data to send (must implement AsRef<u8>).
§Panics

Panics if the write operation fails.

Source

pub async fn try_send_body<D>(&self, data: D) -> Result<(), ResponseError>
where D: AsRef<[u8]>,

Sends HTTP response body.

§Arguments
  • AsRef<[u8]> - The response body data (must implement AsRef<u8>).
§Returns
  • Result<(), ResponseError> - Result indicating success or failure.
Source

pub async fn send_body<D>(&self, data: D)
where D: AsRef<[u8]>,

Sends HTTP response body.

§Arguments
  • AsRef<[u8]> - The response body data (must implement AsRef<u8>).
§Panics

Panics if the write operation fails.

Source

pub async fn try_send_body_list<I, D>( &self, data_iter: I, ) -> Result<(), ResponseError>
where I: IntoIterator<Item = D>, D: AsRef<[u8]>,

Sends multiple HTTP response bodies sequentially.

§Arguments
  • I: IntoIterator<Item = D>, D: AsRef<[u8]> - The response body data list to send.
§Returns
  • Result<(), ResponseError> - Result indicating success or failure.
Source

pub async fn send_body_list<I, D>(&self, data_iter: I)
where I: IntoIterator<Item = D>, D: AsRef<[u8]>,

Sends multiple HTTP response bodies sequentially.

§Arguments
  • I: IntoIterator<Item = D>, D: AsRef<[u8]> - The response body data list to send.
§Panics

Panics if any write operation fails.

Source

pub async fn try_flush(&self) -> Result<(), ResponseError>

Flushes all buffered data to the stream.

§Returns
  • Result<(), ResponseError> - Result indicating success or failure.
Source

pub async fn flush(&self)

Flushes all buffered data to the stream.

§Panics

Panics if the flush operation fails.

Trait Implementations§

Source§

impl Clone for ArcRwLockStream

Source§

fn clone(&self) -> ArcRwLockStream

Returns a duplicate 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 ArcRwLockStream

Source§

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

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

impl PartialEq for ArcRwLockStream

Implementation of PartialEq trait for ArcRwLockStream.

Source§

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

Compares two ArcRwLockStream instances for equality.

§Arguments
  • &self - The first ArcRwLockStream instance.
  • other - The second ArcRwLockStream instance to compare.
§Returns
  • bool - true if the instances point to the same Arc, false otherwise.
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 ArcRwLockStream

Implementation of Eq trait for ArcRwLockStream.

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> AnySend for T
where T: Any + Send,

Source§

impl<T> AnySendClone for T
where T: Any + Send + Clone,

Source§

impl<T> AnySendSync for T
where T: Any + Send + Sync,

Source§

impl<T> AnySendSyncClone for T
where T: Any + Send + Sync + Clone,

Source§

impl<T> AnySync for T
where T: Any + Sync,

Source§

impl<T> AnySyncClone for T
where T: Any + Sync + Clone,