ts_static

Crates.iots_static
lib.rsts_static
version0.3.0
sourcesrc
created_at2020-09-17 06:08:25.994375
updated_at2020-09-24 21:45:40.729763
descriptionWrapper macro for lazy static and a struct to aid in accessing a static in a thread safe way.
homepagehttps://github.com/Sibz/ts_static
repositoryhttps://github.com/Sibz/ts_static
max_upload_size
id289688
size49,943
Steven (Sibz)

documentation

https://github.com/Sibz/ts_static/README.md

README

ts_static

Wrapper macro for lazy_static! and a struct to aid in accessing a static in a thread safe way.

Can be used in global scope or in module scope.

Requires lazy_static imported to the scope where ts_static is used

Usage

ts_static!(STATIC_NAME, Type);

Example

ts_static!(MY_STATIC_NAME, i32);

Static is set to a ThreadSafeStruct<T>.

To set the value use the set member function.

To work with the value use the with member function.

You can access the mutex field directly value but the helpers should be suffice for most needs

Set value

MY_STATIC_NAME.set(Some(1337));

Use value

MY_STATIC_NAME.with(|value| {
    *value += 1 
}).expect(".with failed");

Clear value

MY_STATIC_NAME.set(None);

HashMaps

There are two helper functions if your T is a HashMap:

  • insert(key, value) - Adds or updates a value
  • remove(key) - Gets and removes a value

These function much like the HashMap type but are guaranteed to be thread safe.

Commit count: 18

cargo fmt