Struct OwnedPermit
pub struct OwnedPermit<T> { /* private fields */ }
Owned permit to send one value into the channel.
This is identical to the Permit type, except that it moves the sender
rather than borrowing it.
OwnedPermit values are returned by Sender::reserve_owned() and
Sender::try_reserve_owned() and are used to guarantee channel capacity
before generating a message to send.
Implementations
impl<T> OwnedPermit<T>
fn send(self, value: T) -> Sender<T>Sends a value using the reserved capacity.
Capacity for the message has already been reserved. The message is sent to the receiver and the permit is consumed. The operation will succeed even if the receiver half has been closed. See
Receiver::closefor more details on performing a clean shutdown.Unlike
Permit::send, this method returns theSenderfrom which theOwnedPermitwas reserved.Examples
use mpsc; # # asyncfn release(self) -> Sender<T>Releases the reserved capacity without sending a message, returning the
Sender.Examples
use mpsc; # # asyncfn same_channel(&self, other: &Self) -> boolReturns
trueif permits belong to the same channel.Examples
use mpsc; # # asyncfn same_channel_as_sender(&self, sender: &Sender<T>) -> boolReturns
trueif this permit belongs to the same channel as the givenSender.Examples
use mpsc; # # async
Trait Implementations
impl<T> Debug for OwnedPermit<T>
fn fmt(&self, fmt: &mut Formatter<'_>) -> Result
impl<T> Drop for OwnedPermit<T>
fn drop(&mut self)
Auto Trait Implementations
impl<T> Freeze for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: Freeze,
impl<T> RefUnwindSafe for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: RefUnwindSafe,
impl<T> Send for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: Send,
impl<T> Sync for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: Sync,
impl<T> Unpin for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: Unpin,
impl<T> UnsafeUnpin for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: UnsafeUnpin,
impl<T> UnwindSafe for OwnedPermit<T>
where
Option<Tx<T, Semaphore>>: UnwindSafe,
Blanket Implementations
impl<T> Any for OwnedPermit<T>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for OwnedPermit<T>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for OwnedPermit<T>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for OwnedPermit<T>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for OwnedPermit<T>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for OwnedPermit<T>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for OwnedPermit<T>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>