Структура Permit
pub struct Permit<'a, T> { /* private fields */ }
Доступно только при включённой функции crate
sync.Позволяет отправить одно значение в канал.
Значения Permit возвращаются методами Sender::reserve() и Sender::try_reserve() и используются для резервирования места в канале до создания отправляемого сообщения.
Реализации
impl<T> Permit<'_, T>
pub fn send(self, value: T)
Отправляет значение, используя зарезервированное место.
Место для сообщения уже зарезервировано. Сообщение отправляется получателю, а разрешение потребляется. Операция выполнится успешно, даже если принимающая сторона была закрыта. Подробнее о корректном завершении работы см. в описании метода Receiver::close.
Примеры
use tokio::sync::mpsc;
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);Реализации трейтов
Автоматические реализации трейтов
impl<'a, T> Freeze for Permit<'a, T>
impl<'a, T> RefUnwindSafe for Permit<'a, T>
impl<'a, T> Send for Permit<'a, T>where T: Send,
impl<'a, T> Sync for Permit<'a, T>where T: Send,
impl<'a, T> Unpin for Permit<'a, T>
impl<'a, T> UnsafeUnpin for Permit<'a, T>
impl<'a, T> UnwindSafe for Permit<'a, T>
Обобщённые реализации
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
Изменяемо заимствует данные из принадлежащего значения. Подробнее
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Присоединяет текущий используемый по умолчанию
Subscriber к этому типу и возвращает оболочку WithDispatch. Подробнее
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/sync/mpsc/struct.Permit.html