跳到主要内容

Permit

搜索

结构体 Permit 

源代码
pub struct Permit<'a, T> { /* 私有字段 */ }
展开描述

允许向 channel 发送一个值的 permit。

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

实现§

源代码§

impl<T> Permit<'_, T>

源代码

pub fn send(self, value: T)

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

消息的容量已被预留。消息被发送到 receiver,并且许可被消费。即使 receiver 半部分已关闭,此操作也会成功。有关执行干净关闭的更多详细信息,请参阅 Receiver::close

§示例
use tokio::sync::mpsc;

let (tx, mut rx) = mpsc::channel(1);

// 预留容量
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);

// 接收在 permit 上发送的值
assert_eq!(rx.recv().await.unwrap(), 456);

trait 实现§

源代码§

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

源代码§

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

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

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

源代码§

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 实现§

源代码§

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

源代码§

fn type_id(&self) -> TypeId

Gets the TypeId of self. 更多信息
源代码§

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

源代码§

fn borrow(&self) -> &T

Immutably borrows from an owned value. 更多信息
源代码§

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

源代码§

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

Mutably borrows from an owned value. 更多信息
源代码§

impl<T> From<T> for T

源代码§

fn from(t: T) -> T

原样返回参数。

源代码§

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>

执行转换。