Struct aldrin::UnboundSender
source · pub struct UnboundSender<T: Serialize + ?Sized> { /* private fields */ }Expand description
A sender that is not bound to any particular client.
UnboundSenders are used to transfer senders to some other client, typically by
returning them from function calls.
When creating a channel the resulting
UnclaimedSender can be unbound and sent to another client.
It is worth noting that this type implements Copy and Clone. As such (and because it is
not bound to any client), it will not close the sending end of a channel. This is the main
difference from UnclaimedSender.
Implementations§
source§impl<T: Serialize + ?Sized> UnboundSender<T>
impl<T: Serialize + ?Sized> UnboundSender<T>
sourcepub fn bind(self, client: Handle) -> UnclaimedSender<T>
pub fn bind(self, client: Handle) -> UnclaimedSender<T>
Binds the sender to a client.
See also claim to bind and claim the sender in one step.
§Examples
use aldrin::{UnclaimedSender, Sender};
// Assume this sender has been returned from some function call.
// let sender: UnboundSender<u32> = ...
// Bind it to the local client. The explicit type is shown here only for the sake of the
// example.
let sender: UnclaimedSender<u32> = sender.bind(handle.clone());
// Afterwards, it can be claimed.
let sender: Sender<u32> = sender.claim().await?;sourcepub async fn claim(self, client: Handle) -> Result<Sender<T>, Error>
pub async fn claim(self, client: Handle) -> Result<Sender<T>, Error>
Binds the sender to a client and claims it.
This function is equivalent to sender.bind(client).claim().
See UnclaimedSender::claim for explanation of the cases in which this function can fail.
§Examples
use aldrin::Sender;
// Assume this sender has been returned from some function call.
// let sender: UnboundSender<u32> = ...
// Bind it to the local client and claim it, so that it can immediately be used. The
// explicit type here is given only for the sake of the example.
let sender: Sender<u32> = sender.claim(handle.clone()).await?;sourcepub fn cast<U: Serialize + ?Sized>(self) -> UnboundSender<U>
pub fn cast<U: Serialize + ?Sized>(self) -> UnboundSender<U>
Casts the item type to a different type.
Trait Implementations§
source§impl<T: Clone + Serialize + ?Sized> Clone for UnboundSender<T>
impl<T: Clone + Serialize + ?Sized> Clone for UnboundSender<T>
source§fn clone(&self) -> UnboundSender<T>
fn clone(&self) -> UnboundSender<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl<T: Serialize + ?Sized> Deserialize for UnboundSender<T>
impl<T: Serialize + ?Sized> Deserialize for UnboundSender<T>
fn deserialize( deserializer: Deserializer<'_, '_> ) -> Result<Self, DeserializeError>
source§impl<T: PartialEq + Serialize + ?Sized> PartialEq for UnboundSender<T>
impl<T: PartialEq + Serialize + ?Sized> PartialEq for UnboundSender<T>
source§fn eq(&self, other: &UnboundSender<T>) -> bool
fn eq(&self, other: &UnboundSender<T>) -> bool
self and other values to be equal, and is used
by ==.