auto merge of #9160 : alexcrichton/rust/local-data-docs, r=huonw

Remove references to local_data::Key and only mention the macro for how to
construct new keys into local data.
This commit is contained in:
bors 2013-09-14 02:30:59 -07:00
commit f853f0b2d6

View File

@ -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::*;