Struct tokio::sync::mpsc::Permit [−][src]
Permit to send one value into the channel.
Permit
values are returned by Sender::reserve()
and are used to
guarantee channel capacity before generating a message to send.
Implementations
impl<T> Permit<'_, T>
[src]
pub fn send(self, value: T)
[src]
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::close
for
more details on performing a clean shutdown.
Examples
use tokio::sync::mpsc; #[tokio::main] async fn main() { let (tx, mut rx) = mpsc::channel(1); // Reserve capacity let permit = tx.reserve().await.unwrap(); // Trying to send directly on the `tx` will fail due to no // available capacity. assert!(tx.try_send(123).is_err()); // Send a message on the permit permit.send(456); // The value sent on the permit is received assert_eq!(rx.recv().await.unwrap(), 456); }
Trait Implementations
Auto Trait Implementations
impl<'a, T> !RefUnwindSafe for Permit<'a, T>
impl<'a, T> Send for Permit<'a, T> where
T: Send,
T: Send,
impl<'a, T> Sync for Permit<'a, T> where
T: Send,
T: Send,
impl<'a, T> Unpin for Permit<'a, T>
impl<'a, T> !UnwindSafe for Permit<'a, T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,