#thread-local #static #lazy-evaluation #thread #macro

ref_thread_local

A macro for declaring thread-local statics like using both of lazy_static! and RefCell

3 unstable releases

Uses old Rust 2015

0.1.1 Nov 16, 2021
0.1.0 Jan 15, 2021
0.0.0 Oct 1, 2018

#1080 in Rust patterns

Download history 617/week @ 2024-03-15 547/week @ 2024-03-22 715/week @ 2024-03-29 600/week @ 2024-04-05 536/week @ 2024-04-12 569/week @ 2024-04-19 598/week @ 2024-04-26 589/week @ 2024-05-03 533/week @ 2024-05-10 461/week @ 2024-05-17 520/week @ 2024-05-24 656/week @ 2024-05-31 519/week @ 2024-06-07 699/week @ 2024-06-14 519/week @ 2024-06-21 222/week @ 2024-06-28

2,112 downloads per month
Used in 22 crates (12 directly)

MIT license

19KB
352 lines

ref_thread_local.rs

A macro for declaring thread-local statics like using both of lazy_static! and RefCell

Using this macro, you can have thread-local statics be referenced by borrow() function like using a RefCell.

You may also initialize or destroy a static variable at any time you like.

Travis-CI Status Latest version Documentation License

Minimum supported rustc

1.30.0+

Getting Started

ref_thread_local.rs is available on crates.io. It is recommended to look there for the newest released version, as well as links to the newest builds of the docs.

At the point of the last update of this README, the latest published version could be used like this:

Add the following dependency to your Cargo manifest...

[dependencies]
ref_thread_local = "0.0"

...and see the docs for how to use it.

Example

#[macro_use]
extern crate ref_thread_local;
use ref_thread_local::RefThreadLocal;

ref_thread_local! {
    static managed NUMBER: i32 = 233;
}

fn main() {
    let x = NUMBER.borrow(); // a Ref<'a, i32>
    println!("The number is {}.", x);
}

License

Licensed under of

No runtime deps