pub struct Sender<T>(/* private fields */);Expand description
The transmitting end of a channel.
Use bounded or rendezvous to create a channel. You can also convert an UnboundSender into this one.
Implementations§
Source§impl<T> Sender<T>
impl<T> Sender<T>
Sourcepub async fn send(&self, msg: T) -> Result<(), SendError<T>>
pub async fn send(&self, msg: T) -> Result<(), SendError<T>>
Send a value into the channel.
Waits until there is space in the channel buffer.
Returns an error if all receivers have been dropped.
Sourcepub async fn send_deadline(
&self,
msg: T,
deadline: impl Into<Deadline>,
) -> Result<(), SendTimeoutError<Option<T>>>
pub async fn send_deadline( &self, msg: T, deadline: impl Into<Deadline>, ) -> Result<(), SendTimeoutError<Option<T>>>
Send a value into the channel.
Waits until there is space in the channel buffer or the deadline is reached.
Returns an error if all receivers have been dropped or the deadline is reached. The msg is lost in case of timeout.
Sourcepub fn is_disconnected(&self) -> bool
pub fn is_disconnected(&self) -> bool
Returns true if all receivers for this channel have been dropped.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if the channel is empty.
Note: rendezvous channels are always empty.
Sourcepub fn is_full(&self) -> bool
pub fn is_full(&self) -> bool
Returns true if the channel is full.
Note: rendezvous channels are always full and unbounded channels are never full.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Sender<T>
impl<T> RefUnwindSafe for Sender<T>
impl<T> Send for Sender<T>where
T: Send,
impl<T> Sync for Sender<T>where
T: Send,
impl<T> Unpin for Sender<T>
impl<T> UnwindSafe for Sender<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more