Sender

Struct Sender 

Source
pub struct Sender<T, const N: usize> { /* private fields */ }
Expand description

SPSC channel sender

SPSC 通道发送器

Implementations§

Source§

impl<T, const N: usize> Sender<T, N>

Source

pub async fn send(&self, value: T) -> Result<(), SendError<T>>

Send a message to the channel (async, waits if buffer is full)

§Errors

Returns SendError::Closed if the receiver has been dropped

向通道发送消息(异步,如果缓冲区满则等待)

§错误

如果接收器已被丢弃,返回 SendError::Closed

Source

pub fn try_send(&self, value: T) -> Result<(), TrySendError<T>>

Try to send a message without blocking

§Errors
  • Returns TrySendError::Full if the buffer is full
  • Returns TrySendError::Closed if the receiver has been dropped

尝试非阻塞地发送消息

§错误
  • 如果缓冲区满,返回 TrySendError::Full
  • 如果接收器已被丢弃,返回 TrySendError::Closed
Source

pub fn is_closed(&self) -> bool

Check if the channel is closed

检查通道是否已关闭

Source

pub fn capacity(&self) -> usize

Get the capacity of the channel

获取通道的容量

Source

pub fn len(&self) -> usize

Get the number of messages currently in the channel

获取通道中当前的消息数量

Source

pub fn is_empty(&self) -> bool

Source

pub fn free_slots(&self) -> usize

Get the number of free slots in the channel

获取通道中的空闲空间数量

Source

pub fn is_full(&self) -> bool

Check if the channel is full

检查通道是否已满

Source§

impl<T, const N: usize> Sender<T, N>
where T: Copy,

Source

pub fn try_send_slice(&self, values: &[T]) -> usize

Try to send multiple values from a slice without blocking

尝试非阻塞地从切片发送多个值

This method attempts to send as many elements as possible from the slice. It returns the number of elements successfully sent.

此方法尝试从切片中发送尽可能多的元素。 返回成功发送的元素数量。

§Parameters
  • values: Slice of values to send
§Returns

Number of elements successfully sent (0 to values.len())

§参数
  • values: 要发送的值的切片
§返回值

成功发送的元素数量(0 到 values.len())

Source

pub async fn send_slice(&self, values: &[T]) -> Result<usize, SendError<()>>

Send multiple values from a slice (async, waits if buffer is full)

从切片发送多个值(异步,如果缓冲区满则等待)

This method will send all elements from the slice, waiting if necessary when the buffer becomes full. Returns the number of elements sent, or an error if the channel is closed.

此方法将发送切片中的所有元素,必要时在缓冲区满时等待。 返回发送的元素数量,如果通道关闭则返回错误。

§Parameters
  • values: Slice of values to send
§Returns
  • Ok(usize): Number of elements successfully sent
  • Err(SendError): Channel is closed
§参数
  • values: 要发送的值的切片
§返回值
  • Ok(usize): 成功发送的元素数量
  • Err(SendError): 通道已关闭

Trait Implementations§

Source§

impl<T, const N: usize> Drop for Sender<T, N>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T, const N: usize> Freeze for Sender<T, N>

§

impl<T, const N: usize> !RefUnwindSafe for Sender<T, N>

§

impl<T, const N: usize> Send for Sender<T, N>
where T: Send,

§

impl<T, const N: usize> Sync for Sender<T, N>
where T: Send,

§

impl<T, const N: usize> Unpin for Sender<T, N>

§

impl<T, const N: usize> !UnwindSafe for Sender<T, N>

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> 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, 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.