pub struct Sender<T> { /* private fields */ }
Expand description
A means of transmitting a single value to another task.
This is created by the channel
function.
Implementations§
Source§impl<T> Sender<T>
impl<T> Sender<T>
Sourcepub fn send(self, t: T) -> Result<(), T>
pub fn send(self, t: T) -> Result<(), T>
Completes this oneshot with a successful result.
This function will consume self
and indicate to the other end, the
Receiver
, that the value provided is the result of the computation
this represents.
If the value is successfully enqueued for the remote end to receive,
then Ok(())
is returned. If the receiving end was dropped before
this function was called, however, then Err(t)
is returned.
Sourcepub fn poll_canceled(&mut self, cx: &mut Context<'_>) -> Poll<()>
pub fn poll_canceled(&mut self, cx: &mut Context<'_>) -> Poll<()>
Polls this Sender
half to detect whether its associated
Receiver
has been dropped.
§Return values
If Ready(())
is returned then the associated Receiver
has been
dropped, which means any work required for sending should be canceled.
If Pending
is returned then the associated Receiver
is still
alive and may be able to receive a message if sent. The current task,
however, is scheduled to receive a notification if the corresponding
Receiver
goes away.
Sourcepub fn cancellation(&mut self) -> Cancellation<'_, T> ⓘ
pub fn cancellation(&mut self) -> Cancellation<'_, T> ⓘ
Creates a future that resolves when this Sender
’s corresponding
Receiver
half has hung up.
This is a utility wrapping poll_canceled
to expose a Future
.
Sourcepub fn is_canceled(&self) -> bool
pub fn is_canceled(&self) -> bool
Tests to see whether this Sender
’s corresponding Receiver
has been dropped.
Unlike poll_canceled
, this function does not
enqueue a task for wakeup upon cancellation, but merely reports the
current state, which may be subject to concurrent modification.
Sourcepub fn is_connected_to(&self, receiver: &Receiver<T>) -> bool
pub fn is_connected_to(&self, receiver: &Receiver<T>) -> bool
Tests to see whether this Sender
is connected to the given Receiver
. That is, whether
they were created by the same call to channel
.
Trait Implementations§
impl<T> Unpin for Sender<T>
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> !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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes