跳到主要内容

Permit

搜索

结构体 Permit 

Source
pub struct Permit<'a, T> { /* private fields */ }
展开描述

用于向 channel 发送一个值的 permit。

Permit 值 由 Sender::reserve()Sender::try_reserve() 返回, 用于 在生成要发送的消息之前 保证通道容量。

实现§

Source§

impl<T> Permit<'_, T>

Source

pub fn send(self, value: T)

使用预留的容量发送一个值。

消息的容量已被预留。消息被发送到接收者并且 permit 被消费。即使接收半部已关闭,操作也会成功。有关执行干净关闭的更多详细信息,请参阅 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);

Trait 实现§

Source§

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

Source§

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

使用给定的格式化器格式化此值。 更多信息
Source§

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

Source§

fn drop(&mut self)

执行此类型的析构函数。 更多信息

自动 Trait 实现§

§

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>

Blanket 实现§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. 更多信息
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. 更多信息
Source§

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

Source§

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

Mutably borrows from an owned value. 更多信息
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

原样返回传入的参数。

Source§

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

Source§

fn into(self) -> U

调用 U::from(self)

也就是说,此转换的具体行为取决于 From<T> for U 的实现方式。

Source§

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

Source§

type Error = Infallible

转换出错时返回的类型。
Source§

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

执行转换。
Source§

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

Source§

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

转换出错时返回的类型。
Source§

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

执行转换。