pub struct LocalKey<T: 'static> { /* 私有字段 */ }展开描述
用于任务本地数据的键。
此类型由 task_local! 宏生成。
与 std::thread::LocalKey, tokio::task::LocalKey 不会在首次访问时惰性初始化该值。而是在包含任务本地的 future 首次由 futures 执行器(如 Tokio)poll 时才初始化该值。
§示例
tokio::task_local! {
static NUMBER: u32;
}
NUMBER.scope(1, async move {
assert_eq!(NUMBER.get(), 1);
}).await;
NUMBER.scope(2, async move {
assert_eq!(NUMBER.get(), 2);
NUMBER.scope(3, async move {
assert_eq!(NUMBER.get(), 3);
}).await;
}).await;实现§
源代码§impl<T: 'static> LocalKey<T>
impl<T: 'static> LocalKey<T>
源代码pub fn scope<F>(&'static self, value: T, f: F) -> TaskLocalFuture<T, F> ⓘwhere
F: Future,
pub fn scope<F>(&'static self, value: T, f: F) -> TaskLocalFuture<T, F> ⓘwhere
F: Future,
源代码pub fn sync_scope<F, R>(&'static self, value: T, f: F) -> Rwhere
F: FnOnce() -> R,
pub fn sync_scope<F, R>(&'static self, value: T, f: F) -> Rwhere
F: FnOnce() -> R,
trait 实现§
自动 trait 实现§
impl<T> Freeze for LocalKey<T>
impl<T> RefUnwindSafe for LocalKey<T>
impl<T> Send for LocalKey<T>
impl<T> Sync for LocalKey<T>
impl<T> Unpin for LocalKey<T>
impl<T> UnsafeUnpin for LocalKey<T>
impl<T> UnwindSafe for LocalKey<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. 更多信息