pub struct WeakSender<T: Send + Sync + 'static> { /* private fields */ }Expand description
A sender that does not keep the channel open.
Made by Sender::downgrade. Once every Sender is gone the channel
is closed, whatever WeakSenders are left. A WeakSender sends nothing
itself: upgrade makes a Sender of it while one
exists.
use nuclei::sync::broadcast;
let (tx, _rx) = broadcast::channel::<u8>(4);
let weak = tx.downgrade();
assert!(weak.upgrade().is_some());
drop(tx);
assert!(weak.upgrade().is_none());Implementations§
Source§impl<T: Send + Sync + 'static> WeakSender<T>
impl<T: Send + Sync + 'static> WeakSender<T>
Sourcepub fn upgrade(&self) -> Option<Sender<T>>
pub fn upgrade(&self) -> Option<Sender<T>>
A Sender of the channel, while one exists; None once the last
is gone (the channel is closed then, for good).
Sourcepub fn strong_count(&self) -> usize
pub fn strong_count(&self) -> usize
How many Senders exist.
Sourcepub fn weak_count(&self) -> usize
pub fn weak_count(&self) -> usize
How many WeakSenders exist.
Trait Implementations§
Auto Trait Implementations§
impl<T> !RefUnwindSafe for WeakSender<T>
impl<T> !UnwindSafe for WeakSender<T>
impl<T> Freeze for WeakSender<T>
impl<T> Send for WeakSender<T>
impl<T> Sync for WeakSender<T>
impl<T> Unpin for WeakSender<T>
impl<T> UnsafeUnpin for WeakSender<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