[−][src]Struct tokio::sync::mpsc::Permit
This is supported on crate feature
sync
only.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> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
[src]
Notable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
pub fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
[src]
Notable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
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>,