Struct tokio::sync::mpsc::WeakSender   
source · pub struct WeakSender<T> { /* private fields */ }Expand description
A sender that does not prevent the channel from being closed.
If all Sender instances of a channel were dropped and only WeakSender
instances remain, the channel is closed.
In order to send messages, the WeakSender needs to be upgraded using
WeakSender::upgrade, which returns Option<Sender>. It returns None
if all Senders have been dropped, and otherwise it returns a Sender.
#Examples
use tokio::sync::mpsc::channel;
#[tokio::main]
async fn main() {
    let (tx, _rx) = channel::<i32>(15);
    let tx_weak = tx.downgrade();
   
    // Upgrading will succeed because `tx` still exists.
    assert!(tx_weak.upgrade().is_some());
   
    // If we drop `tx`, then it will fail.
    drop(tx);
    assert!(tx_weak.clone().upgrade().is_none());
}