# Ambience A lightweight library for passing ambient parameters. ## Examples Thread-local ambient parameters can be set with `ambience::thread::set`. The ambient parameter can then be accessed via `ambience::thread::get` until the guard object returned by `set` is dropped. ```rust struct User { // ... } fn process() { // retrieve the user from this threads ambient environment let user: Rc = ambience::thread::get::(); // ... } 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); process(); } ```