Macro async_std::task_local
source · [−]macro_rules! task_local {
() => { ... };
($(#[$attr:meta])* $vis:vis static $name:ident: $t:ty = $init:expr) => { ... };
($(#[$attr:meta])* $vis:vis static $name:ident: $t:ty = $init:expr; $($rest:tt)*) => { ... };
}
Expand description
Declares task-local values.
The macro wraps any number of static declarations and makes them task-local. Attributes and visibility modifiers are allowed.
Each declared value is of the accessor type LocalKey
.
Examples
use std::cell::Cell;
use async_std::prelude::*;
use async_std::task;
task_local! {
static VAL: Cell<u32> = Cell::new(5);
}
task::block_on(async {
let v = VAL.with(|c| c.get());
assert_eq!(v, 5);
});