pub struct Permit<'a, T> { /* 私有字段 */ }展开描述
允许向 channel 发送一个值的 permit。
Permit 值由 Sender::reserve() 和 Sender::try_reserve() 返回,用于在生成要发送的消息之前保证 channel 容量。
实现§
源代码§impl<T> Permit<'_, T>
impl<T> Permit<'_, T>
源代码pub fn send(self, value: 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 实现§
自动 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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
源代码§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. 更多信息