Macro async_std::task_local[][src]

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);
});