diff --git a/src/libstd/local_data.rs b/src/libstd/local_data.rs index a13c75635dc..89bdb57e2bd 100644 --- a/src/libstd/local_data.rs +++ b/src/libstd/local_data.rs @@ -17,9 +17,10 @@ anywhere within a task, keyed by a global pointer parameterized over the type of the TLS slot. Useful for dynamic variables, singletons, and interfacing with foreign code with bad callback interfaces. -To use, declare a static variable of the type you wish to store. The -initialization should be `&local_data::Key`. This is then the key to what you -wish to store. +To declare a new key for storing local data of a particular type, use the +`local_data_key!` macro. This macro will expand to a `static` item apppriately +named and annotated. This name is then passed to the functions in this module to +modify/read the slot specified by the key. ~~~{.rust} use std::local_data; @@ -31,14 +32,14 @@ local_data::set(key_int, 3); local_data::get(key_int, |opt| assert_eq!(opt, Some(&3))); local_data::set(key_vector, ~[4]); -local_data::get(key_int, |opt| assert_eq!(opt, Some(&~[4]))); +local_data::get(key_vector, |opt| assert_eq!(opt, Some(&~[4]))); ~~~ -Casting 'Arcane Sight' reveals an overwhelming aura of Transmutation -magic. - */ +// Casting 'Arcane Sight' reveals an overwhelming aura of Transmutation +// magic. + use cast; use libc; use prelude::*;