3 个不稳定版本

0.2.1 2020年4月14日
0.2.0 2020年4月14日
0.1.0 2020年4月9日

1801 in Rust 模式

MIT 许可证

12KB
205

Ambience

Ambience 是一个轻量级库,用于传递环境参数。

示例

可以使用 ambience::thread::set 设置线程局部环境参数。然后可以通过 ambience::thread::get 访问环境参数,直到由 set 返回的保护对象被丢弃。

struct User {
    // ...
}

fn process() {
    // retrieve the user from this threads ambient environment
    let user: Rc<User> = ambience::thread::get::<User>();
    // ...
}

fn main() {
    let user = // ...

    // set the user as ambient data for the current thread.
    // the value is accessible until `_ambience_guard` is dropped.
    let _ambience_guard = ambience::thread::set::<User>(user);
    process();
}

依赖

~305–770KB
~18K SLoC