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>

source

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?;
source

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?;
source

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>

source§

fn clone(&self) -> UnboundSender<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug + Serialize + ?Sized> Debug for UnboundSender<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Serialize + ?Sized> Deserialize for UnboundSender<T>

source§

fn deserialize( deserializer: Deserializer<'_, '_> ) -> Result<Self, DeserializeError>

source§

impl<T: PartialEq + Serialize + ?Sized> PartialEq for UnboundSender<T>

source§

fn eq(&self, other: &UnboundSender<T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Serialize + ?Sized> Serialize for UnboundSender<T>

source§

fn serialize(&self, serializer: Serializer<'_>) -> Result<(), SerializeError>

source§

impl<T: Copy + Serialize + ?Sized> Copy for UnboundSender<T>

source§

impl<T: Eq + Serialize + ?Sized> Eq for UnboundSender<T>

source§

impl<T: Serialize + ?Sized> StructuralPartialEq for UnboundSender<T>

Auto Trait Implementations§

§

impl<T: ?Sized> Freeze for UnboundSender<T>

§

impl<T: ?Sized> RefUnwindSafe for UnboundSender<T>

§

impl<T: ?Sized> Send for UnboundSender<T>

§

impl<T: ?Sized> Sync for UnboundSender<T>

§

impl<T: ?Sized> Unpin for UnboundSender<T>

§

impl<T: ?Sized> UnwindSafe for UnboundSender<T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.