Spec-Zone.ru › Tokio

Структура 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<T> Debug for Permit<'_, T>

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

Форматирует значение с помощью заданного форматировщика. Подробнее

impl<T> Drop for Permit<'_, T>

fn drop(&mut self)

Выполняет деструктор для этого типа. Подробнее

fn pin_drop(self: Pin<&mut Self>)

🔬Это экспериментальный API, доступный только в nightly-сборке. (pin_ergonomics)
Выполняет деструктор для этого типа, но, в отличие от Drop::drop, требует, чтобы self был закреплён. Подробнее

Автоматические реализации трейтов

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> Any for T
where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

Получает TypeId для self. Подробнее

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

fn borrow(&self) -> &T

Неизменяемо заимствует данные из принадлежащего значения. Подробнее

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

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

Изменяемо заимствует данные из принадлежащего значения. Подробнее

impl<T> From<T> for T

fn from(t: T) -> T

Возвращает аргумент без изменений.

impl<T> Instrument for T

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью предоставленного Span, возвращая обёртку Instrumented. Подробнее

fn in_current_span(self) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью текущего Span, возвращая обёртку Instrumented. Подробнее

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

fn into(self) -> U

Вызывает U::from(self).

Иными словами, это преобразование выполняет то, что выберет реализация From<T> for U.

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

type Error = Infallible

Тип, возвращаемый в случае ошибки преобразования.

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

Выполняет преобразование.

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

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

Тип, возвращаемый в случае ошибки преобразования.

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

Выполняет преобразование.

impl<T> WithSubscriber for T

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Присоединяет предоставленный Subscriber к этому типу и возвращает оболочку WithDispatch. Подробнее

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API